1、使用單元Registry
2、讀取系統(tǒng)軟件安裝列表,發(fā)現(xiàn)32位和64位若使用
64位系統(tǒng)軟件列表在
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
32位系統(tǒng)軟件列表在
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;
=============================================================================
注冊表的左側(cè)樹形列表稱之為“項”,右側(cè)的列表為名稱和值
=============================================================================
reg.ReadString('名稱')之類的讀取的是字符串的值
函數(shù)聲明為function ReadString(const Name: String):String;,其中參數(shù)Name為要讀取的字符串的名稱,函數(shù)返回值為要讀取的字符串的值,是字符串類型。如果該字符串在注冊表中不存在,返回值為空字符串。
=============================================================================
reg.GetKeyNames(lst1.Items);獲取的是項名稱的列表
=============================================================================
reg.ValueExists('名稱')返回bool,確定字符串名稱是否存在
=============================================================================
同一級讀取項變換后,必須重新從頂層開始OpenKey
reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',False);
reg.OpenKey('項名稱',False);
reg.CloseKey;
函數(shù)聲明為function OpenKey(const Key: String; CanCreate: Boolean):Boolean;,其中參數(shù)Key指定要打開的注冊表的項,參數(shù)CanCreate指明當(dāng)要打開的項不存在時是否創(chuàng)建,默認(rèn)值為False;函數(shù)返回值為布爾類型,如果打開成功返回True,否則返回False。
=============================================================================
=============================================================================
=============================================================================