Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Windows中用C++编程修复程序——也许WinAPI会用什么方法? 我想从C++应用程序中运行,修复其他应用程序——程序化地执行当我在Windows中手动选择程序修复选项时会发生的事情。_C++_Windows_Winapi_Registry_Windows Installer - Fatal编程技术网

在Windows中用C++编程修复程序——也许WinAPI会用什么方法? 我想从C++应用程序中运行,修复其他应用程序——程序化地执行当我在Windows中手动选择程序修复选项时会发生的事情。

在Windows中用C++编程修复程序——也许WinAPI会用什么方法? 我想从C++应用程序中运行,修复其他应用程序——程序化地执行当我在Windows中手动选择程序修复选项时会发生的事情。,c++,windows,winapi,registry,windows-installer,C++,Windows,Winapi,Registry,Windows Installer,对于删除选项,我可以在注册表中搜索: 密钥\u本地\u计算机\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall 在64位机器上 然后使用UninstallString查找我必须使用系统函数执行的命令 但如何以类似的方式运行修复?对于像RepairString这样的程序,注

对于删除选项,我可以在注册表中搜索:

密钥\u本地\u计算机\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall 在64位机器上 然后使用UninstallString查找我必须使用系统函数执行的命令

但如何以类似的方式运行修复?对于像RepairString这样的程序,注册表中没有这样的位置

我想找到所有程序的通用方法,当然我指的是在注册表中留下信息的程序

附加问题:是否可能MsiEnumProductsEx列出的应用程序没有其卸载字符串注册表项

p、 美国。 关于我从great Pat的帖子中获取的删除选项的注册表实体的信息:


如果该程序是随Microsoft安装程序一起安装的,则可以使用一组适当的开关调用MSIEXEC。这些开关记录在TechNet中


但是,即使您使用此功能,修复选项也会有极大的不同。在很多情况下,如果原始MSI文件不再可用,CD未插入,或下载的文件已被删除,则无法启动修复。

如果该程序是随Microsoft安装程序一起安装的,则可以使用一组适当的开关调用MSIEXEC。这些开关记录在TechNet中


但是,即使您使用此功能,修复选项也会有极大的不同。在很多情况下,如果原始MSI文件不再可用,或者CD未插入,或者下载的文件已被删除,则无法启动修复。

通常使用MSI API创建安装包


用于编写MSI包。从

开始通常使用MSI API创建安装包


用于编写MSI包。从

开始请注意,并非所有程序都在“控制面板”中有修复选项。我知道,但我想为有修复选项的程序运行修复选项。以最普通的方式。没有普通的方式。不同类型的安装程序MSI、InstallShield、InstallAware等以不同的方式实现恢复,Windows不知道这些方式。但是像CCleaner等程序具有运行该修复的功能。我发现注册表中有类似于“ModifyPath”的东西——也许这是一个很好的注意事项,不是所有程序在控制面板中都有修复选项。我知道,但我想为有修复选项的程序运行它。以最普通的方式。没有普通的方式。不同类型的安装程序MSI、InstallShield、InstallAware等以不同的方式实现恢复,Windows不知道这些方式。但是像CCleaner等程序具有运行该修复的功能。我发现注册表中有类似“ModifyPath”的东西——也许这是一个好方法