我用如下代码读取win7 64位注册表
procedure TForm1.Button1Click(Sender: TObject);
var
reg:Tregistry;
str:string;
begin
reg:=Tregistry.create(KEY_ALL_ACCESS);
reg.rootkey:=hkey_local_machine;
reg.openkeyreadonly('Software\Microsoft\Windows NT\CurrentVersion\Setup\RecoveryConsole\');
str:=inttostr(reg.readinteger('securitylevel'));
end;
用管理员权限运行时,提示“Failed to get data for 'securitylevel'" 。但该代码在win xp 上正常,在win7 64位上读别的一些注册表也行。
请问该如何解决?谢谢!
////////////////////////////////////////////////////////////
procedure
TForm1
.
Button2Click(Sender: TObject);
var
Reg:TRegistry;
begin
reg:=Tregistry
.
create(KEY_ALL_ACCESS);
reg
.
rootkey:=hkey_local_machine;
try
reg
.
openkey('Software\Microsoft\Windows NT\CurrentVersion\Setup\RecoveryConsole\',
True
);
Reg
.
WriteInteger(
'securitylevel'
,
0
);
finally
Reg
.
CloseKey;
Reg
.
Free;
end
;
end
;
////////////////////////////////////////////////////////////////////////////
但在google上查到,在reg:=Tregistry.create(KEY_ALL_ACCESS)在增加一个参数,改为reg:=Tregistry.create(KEY_ALL_ACCESS or $0100) 。经过测试通过。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。