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以前的知识》