2015-07-28 41 views
1

我正在編寫一個C#控制檯應用程序,它收集有關計算機的數據並將其寫入外部數據庫。需要收集的信息中有一點是關於所安裝軟件的信息。我們有一套我們想知道的特定軟件。具體包括安裝哪些版本,安裝哪些版本以及應用哪些補丁。C#查詢軟件更新歷史記錄

我已經設法通過查詢註冊表來獲取有關安裝哪些軟件以及它們是哪些版本的信息。但是,在搞清楚哪些補丁已安裝時,我有點難過。

我知道如果我去Control Panel -> Programs -> View installed updates我可以看到我爲這些軟件安裝的補丁(具體來說,它給了我確切的補丁號 - 即補丁21)。所以,我想要類似的東西。我發現WUApiLib,並認爲這將是我的問題的答案,但是當我查詢更新歷史記錄時,所有返回的都是Microsoft,.NET,Visual Studio等的更新列表。沒有提及補丁I應用於我們的軟件。

我對修補程序的工作原理並不十分熟悉,但我相信這些修補程序使用msp文件格式,所以我認爲這些信息應該由Windows記錄在某處。控制面板如何獲得它?我可以在哪裏得到它? HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall下的註冊表項根本沒有提及補丁。

回答

1

因此,經過一番挖掘後,我發現註冊表的不同部分列出了我需要的所有信息。

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products 

這包含安裝的每個(<GUID>\Patches下)的名稱和已安裝的軟件版本(<GUID>\InstallProperties下)和補丁