-3

作为应用程序的一个组件,我必须用 C++ 开发一种方法来列出 Windows 计算机上安装的所有软件。为了执行它们,我需要拥有它们相关的可执行文件。(例如:Opera => opera.exe)。在这个阶段,我已经能够在注册表中查看: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 和 SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall 并找到了几个软件(不是全部)所以这是我的问题: - 我怎样才能在电脑上安装所有的软件?(我错过了注册表文件夹吗?) - 如何定义与每个软件相关的好的 .exe?

4

1 回答 1

3

您可以尝试调整此处给出的脚本:

http://technet.microsoft.com/en-us/library/ee156540.aspx

通常,使用 WMI 查找已安装的软件包。或者,如果您真的想查找系统上的所有可执行文件(为什么?),则只需遍历文件系统以查找可执行文件。

对于 C++,您可能想查看 WMI Win32_Product 和 SoftwareFeature 的示例。请参阅:http: //msdn.microsoft.com/en-us/library/windows/desktop/aa394378 (v=vs.85).aspx

但总的来说,没有一种明智的方法可以找到所有已安装的应用程序。尤其是如果您计算诸如嵌入 javascript 的网页、各种脚本和批处理文件等之类的东西。

于 2012-10-09T21:19:57.457 回答