【问题标题】:Enumerate applications installed on windows in C++在 C++ 中枚举安装在 Windows 上的应用程序
【发布时间】:2012-08-27 22:22:41
【问题描述】:

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

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

【问题讨论】:

    标签: c++ mfc using


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。一些应用程序安装程序在 HKCU(当前用户密钥)中注册自己,例如谷歌浏览器。在为另一个用户上下文枚举应用程序时,无法读取用户卸载密钥?有没有办法读取所有用户的卸载密钥?当我阅读用户登录系统后,会创建用户注册表配置单元。那么是否可以在特定用户登录前阅读?
    猜你喜欢
    • 2013-02-16
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 2013-03-09
    • 1970-01-01
    相关资源
    最近更新 更多