分享

64位Win7中Delphi2010下访问注册表HKEY

 quasiceo 2014-08-09

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

最近做一个东东,需要读取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!

所有问题解决!!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多