2012-09-03 29 views
0

我想列出c中的所有已安裝應用程序。我們可以用兩種方法來做到這一點。 1.使用卸載註冊表和2. WMI和Win32_product類。枚舉在C++中安裝在Windows上的應用程序

但是使用註冊表枚舉已安裝的產品可靠嗎?另外WMI僅列出通過MSI安裝程序安裝的產品?還有另一種方法可以做到嗎?如果不是哪個是最好的和推薦的方式?

回答

1

您的直覺是正確的,迭代註冊表是找出哪些程序「安裝」最完整的方法。顯然這不會找到不註冊自己的Windows註冊表的獨立二進制文件/應用程序。

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

Rob Haupt's Answer鏈接some code用於檢查註冊表

+0

感謝您的答覆。某些應用程序安裝程序在HKCU(當前用戶密鑰)中註冊自己,例如谷歌瀏覽器。在枚舉另一個用戶上下文的應用程序時,不可能讀取用戶卸載密鑰?有沒有辦法讀取所有用戶的卸載密鑰?當我讀用戶註冊表配置單元時,用戶登錄到系統後創建。那麼是否可以在登錄特定用戶之前閱讀? – kmanoj

相關問題