1、使用單元Registry 2、讀取系統軟件安裝列表,發現32位和64位若使用 64位系統軟件列表在 HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ 32位系統軟件列表在 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 但是在實際代碼編寫時 reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',False); reg.GetKeyNames(lst1.Items); 獲得的軟件列表是一致的, ============================================================================= 一般步驟: reg:=TRegistry.Create; reg.RootKey:=HKEY_CURRENT_USER; reg.OpenKey('Software',False); reg.CloseKey; reg.free; ============================================================================= 注冊表的左側樹形列表稱之為“項”,右側的列表為名稱和值 ============================================================================= reg.ReadString('名稱')之類的讀取的是字符串的值 函數聲明為function ReadString(const Name: String):String;,其中參數Name為要讀取的字符串的名稱,函數返回值為要讀取的字符串的值,是字符串類型。如果該字符串在注冊表中不存在,返回值為空字符串。 ============================================================================= reg.GetKeyNames(lst1.Items);獲取的是項名稱的列表 ============================================================================= reg.ValueExists('名稱')返回bool,確定字符串名稱是否存在 ============================================================================= 同一級讀取項變換后,必須重新從頂層開始OpenKey reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',False); reg.OpenKey('項名稱',False); reg.CloseKey; 函數聲明為function OpenKey(const Key: String; CanCreate: Boolean):Boolean;,其中參數Key指定要打開的注冊表的項,參數CanCreate指明當要打開的項不存在時是否創建,默認值為False;函數返回值為布爾類型,如果打開成功返回True,否則返回False。 ============================================================================= ============================================================================= ============================================================================= |
|
來自: 工廠應用 > 《Win7以前的知識》