說明:每安裝乙個軟體,那麼該軟體的安裝程式會向登錄檔當中「 software\\microsoft\\windows\\currentversion\\uninstall 」的登錄檔項下面建立乙個登錄檔子項,鍵值儲存解除安裝資料資訊。
實現:1、定義儲存程式解除安裝資訊的結構體software
12、獲取所有程式解除安裝資訊函式getsoftlistall中定義動態陣列,並呼叫獲取程式解除安裝資訊函式getsoftlist。struct
software
2;
判斷系統是否是64位,若是64位系統取消重定向:64bit系統的登錄檔分32 位登錄檔項和64位登錄檔項兩部分。software\\microsoft\\windows\\currentversion\\uninstall 會重定向至 software\\wow6432node\\microsoft\\windows\\currentversion\\uninstall。
13、getsoftlist函式:開啟登錄檔,遍歷獲取子鍵資訊const vector&getsoftlistall()215
}1617return
s_lst;
18 }
14、querysoft函式:給software結構體成員賦值,加入動態陣列void getsoftlist( std::vector&lst, bool is64 )215
16 dword csubkeys = 0; //
子鍵數量
17 dword cbmaxsubkey = 0; //
子鍵名稱的最大長度
18 dword retcode = regqueryinfokey(hkey, 0, 0, 0, &csubkeys, &cbmaxsubkey, 0, 0, 0, 0, 0, 0
);19
20for (int i=0; i
21; //
子鍵名稱
23 dword cbname = max_path; //
子鍵名稱的大小
2425
//列舉子鍵資訊
26 retcode = regenumkeyex(hkey, i, achkey, &cbname, null, null, null, null);
27if (retcode ==error_success)
2834}35
36regclosekey(hkey);
37 }
1void _querysoft(hkey hkey, lpctstr lpsubkey, bool is64, std::vector&lst) 256
57//
加入陣列
58lst.push_back(soft);
59 }
獲取系統所有程序
delphi的tlhelp32單元封裝了關於程序執行緒,堆,模組的函式和結構。寫 之前先對幾個函式進行一下說明。createtoolhelp32snapshot 函式為指定的程序 程序使用的堆 heap 模組 module 執行緒 thread 建立乙個快照 snapshot 也就是各個程序的這些相...
系統資訊獲取 1,獲取系統版本
getversionex函式原型 cpp view plain copy bool getversionex posversioninfo pversioninformation 結構osversioninfoex定義如下 typedef struct osversioninfoex,posvers...
獲取系統的程序資訊
要想獲取系統的程序資訊,有個很好的方法,就是用toolhelp,其提供的介面可以方便的滿足你的要求,如下 include 首先匯入標頭檔案 pe就是我們獲取的程序結構體 dosomething fok process32next m hsnapshot,pe 還有嗎?其中結構體processentr...