64位Win7中Delphi2010下访问注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run无效的解决办法...

本文详细介绍了在访问特定注册表键值时遇到权限不足的问题,通过调整TRegistry构造函数参数成功解决了访问限制。分享了通过提升UAC权限与正确使用TRegistry构造函数来解决注册表访问问题的方法。

最近做一个东东,需要读取HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下的所有键值,结果却不行,代码如下

var Reg: TRegistry;

begin

  Reg := TRegistry.Create;

  Reg.RootKey = HKEY_LOCAL_MACHINE;

  if Reg.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Run',false) then begin

    Caption := Reg.ReadString('APoint');

   // Reg.GetValues(....) //失败!!! 

    //这里就读不到了,GetLastError返回5,权限不足!

  end;

end;

 

后来网上反复查找,很多网友说要提升UAC权限,还给出了一个.Res文件,结果用上这个文件还是不行,最后实在没辙,瞎看了一下,发现TRegistry的构造函数还有参数呢, 试一下:

  Reg := TRegistry.Create(KEY_WRITE OR KEY_READ or KEY_WOW64_64KEY);

测试,OK!

所有问题解决!!

转载于:https://www.cnblogs.com/tommsoft/archive/2012/07/26/2609542.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值