win7 64位下注册表写权限

batmanpy 2015-09-03 10:16:41
请问大牛,win7 64位下注册表写权限怎么取得,delphi xe5 ,

MyReg.RootKey := HKEY_CURRENT_USER;
if MyReg.KeyExists('\SOFTWARE\Policies\Microsoft\Internet Explorer\Main') = False then
begin
MyReg.CreateKey('\SOFTWARE\Policies\Microsoft\Internet Explorer\Main');
end;
MyReg.OpenKeyReadOnly('\SOFTWARE\Policies\Microsoft\Internet Explorer\Main');
if MyReg.ReadString('Start Page') = '' then
begin
MyReg.WriteString('Start Page', 'http://www.baidu.com/'); //这里报错
end;


试过右键管理员权限运行,没用。
...全文
800 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyhoo163 2015-09-05
  • 打赏
  • 举报
回复
修改注册表的权限

XP 32位系统的修改注册表,比较容易上手。但进入Win7 64位,Windows为防止恶意修改,对修改注册表作出相应的限制。使用原有的代码对注册表的修改出现了权限的问题。
解决修改注册表的权限,通过以下二种办法:

一、用户就是管理员的身份,可以直接通过代码修改注册表。

二、通过修改代码,对注册表进行修改
在创建Reg时,要加入参数,这样就能获取相关权限: reg:=Tregistry.create(KEY_ALL_ACCESS or $0100);

同时,要注意32位与64位的注册表的键值不同。比如,系统自启动的键值就有区别:
32位 Reg.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run',False);
64位:Reg.OpenKey('\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Run',False)

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧