c++ - 用C++枚举安装在windows上的应用程序

标签 c++ mfc using

我想在c中列出所有已安装的应用程序。我们可以使用两种方法来做到这一点。 1. 使用卸载注册表和 2. WMI 和 Win32_product 类。

但是使用注册表来枚举已安装的产品是否可靠? WMI 也只列出通过 MSI 安装程序安装的产品吗?还有另一种方法吗?如果不是,最好的和推荐的方法是什么?

最佳答案

您的直觉是正确的,迭代注册表是找出“安装”了哪些程​​序的最完整方法。显然,这不会找到未在 Windows 注册表中自行注册的独立二进制文件/应用程序。

参见 WMI "installed" query different from add/remove programs list?

Rob Haupt's Answer链接到 some code用于检查注册表

关于c++ - 用C++枚举安装在windows上的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12243481/

相关文章:

c++ - 在类声明之前在模板内进行 `using` 声明

c++ - 无法将字符串转换为 const char

c# - 奇怪的 handle 泄漏

c++ - VisualStudio MFC CListCtrl SetItemText 失败

windows - 如何用自己的应用程序窗口CWnd替换窗口桌面

c# - 在 C# 中嵌套 'using' 相当于 typedef

c# - 将 Borland C++ 迁移到 C#

c++ - 点到直线的正交投影

c++ - 如何在不使用 '..' 的情况下包含与当前源文件不在同一目录中的 C++ 头文件?

c# - using block 是否使对象保持事件状态?