在Delphi上获取IE版本 – 注册表解决方案无效
发布时间:2020-12-15 09:08:47 所属栏目:大数据 来源:网络整理
导读:我用这个函数来获取IE版本.但在某些情况下,它无法找到此密钥并返回0.还有另一种不依赖于注册表的方法吗? function GetIEVersion: string;var Reg: TRegistry; S: string; i : integer;begin Reg := TRegistry.Create; with Reg do begin RootKey := HKEY_LO
我用这个函数来获取IE版本.但在某些情况下,它无法找到此密钥并返回0.还有另一种不依赖于注册表的方法吗?
function GetIEVersion: string; var Reg: TRegistry; S: string; i : integer; begin Reg := TRegistry.Create; with Reg do begin RootKey := HKEY_LOCAL_MACHINE; OpenKey('SoftwareMicrosoftInternet Explorer',False); if ValueExists('Version') then begin S := ReadString('Version'); end else begin S := '0'; CloseKey; end; Free; end; result := s; end; 解决方法
TRegistry.OpenKey()使用TRegistry.Access属性来了解打开密钥时要请求的权限.默认情况下,TRegistry.Access设置为KEY_ALL_ACCESS,仅限于管理员.请改用TRegistry.OpenKeyReadOnly().此外,为了更好地衡量,您可以删除ValueExists()检查,因为如果值不存在,ReadString()将返回空字符串.
试试这个: function GetIEVersion: string; var Reg: TRegistry; begin Result := ''; Reg := TRegistry.Create; try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKeyReadOnly('SoftwareMicrosoftInternet Explorer') then try Result := Reg.ReadString('Version'); finally Reg.CloseKey; end; finally Reg.Free; end; if Result = '' then Result := '0'; end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |