我想在c中列出所有已安装的应用程序。我们可以用两种方式来做。 1.使用Uninstall注册表和2. WMI和Win32_product类。
但使用注册表来枚举已安装的产品是否可靠?此外,WMI仅列出通过MSI安装程序安装的产品?还有另一种方法吗?如果没有哪种是最佳和推荐的方式?
答案 0 :(得分:1)
你的直觉是正确的,迭代注册表是找出“安装”哪些程序的最完整方式。显然,这将找不到独立的二进制文件/应用程序,它们不会在Windows注册表中注册。
请参阅WMI "installed" query different from add/remove programs list?
Rob Haupt's Answer指向some code的链接,用于检查注册表