專案需要做乙個軟體安裝解除安裝記錄。找了好久的資料才找到用讀取登錄檔的方法來監控。但對於不寫登錄檔的綠色軟體,還不知道如何進行監控。對於綠色軟體,據說可以用鉤子程式進行監控。可是對c++已經遺忘了......
解決方案:使用timer控制項,每個10s,讀取一邊登錄檔,將當前系統中已安裝的程式記錄一下。然後前後比較記錄,如果記錄增加了,則是安裝了新軟體。如記錄減少了,則是解除安裝了軟體。輸出軟體名到指定的文字檔案中。
下面來詳細說明一下。此次開發使用了幾個新的類:hybriddictionary、dictionaryentry、registrykey、registry。關於這幾個類的使用,能夠google到很多,此處不再詳說。
來看**片段,該幹什麼的都寫在注釋裡了。
因為軟體資訊都是寫在登錄檔hkey_local_machine/software/microsoft/windows/currentversion/uninstall 中,所以迴圈讀取該節點下子節點中的displayname資訊即可。
讀取登錄檔**片段如下:
hybriddictionary 類中,存的值是key,value。如需按照順序取值,可以用以下方法:
系統登錄檔儲存操作
1.定義key常量 下面三個常量可所以定義,本人是為了程式註冊寫得乙個簡單的這側表訪問功能 const rootkey hkey local machine currentkey software handy softkeyitem serial number softcodeid soft cod...
登錄檔的資訊讀取 獲取系統串列埠數
登錄檔資訊的讀取其實很簡單,主要有兩步 1.開啟登錄檔項 inline long cregkey open hkey hkeyparent,lpctstr lpszkeyname,regsam samdesired hkeyparent 主key lpszkeyname key名 前2者相加為全路徑...
C 對系統登錄檔操作的類
using system using system.collections.generic using system.text using microsoft.win32 對登錄檔操作 using system.collections 使用arraylist using system.securit...