六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 1824|回复: 0

64位Win7中Delphi2010下访问注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVer

[复制链接]

升级  70%

9

主题

9

主题

9

主题

童生

Rank: 1

积分
35
 楼主| 发表于 2013-1-1 22:28:54 | 显示全部楼层 |阅读模式
<div id="cnblogs_post_body">最近做一个东东,需要读取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!
所有问题解决!!
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表