【发布时间】:2012-08-27 22:22:41
【问题描述】:
我想在 c 中列出所有已安装的应用程序。我们可以使用两种方式来做到这一点。 1. 使用卸载注册表和 2. WMI 和 Win32_product 类。
但是使用注册表来枚举已安装的产品是否可靠? WMI 也只列出通过 MSI 安装程序安装的产品?还有另一种方法吗?如果不是,哪种方法是最好的和推荐的?
【问题讨论】:
我想在 c 中列出所有已安装的应用程序。我们可以使用两种方式来做到这一点。 1. 使用卸载注册表和 2. WMI 和 Win32_product 类。
但是使用注册表来枚举已安装的产品是否可靠? WMI 也只列出通过 MSI 安装程序安装的产品?还有另一种方法吗?如果不是,哪种方法是最好的和推荐的?
【问题讨论】:
您的直觉是正确的,迭代注册表是找出“已安装”哪些程序的最完整方法。显然,这不会找到未在 Windows 注册表中注册的独立二进制文件/应用程序。
见WMI "installed" query different from add/remove programs list?
Rob Haupt's Answer 链接到some code 以检查注册表
【讨论】: