.reg文件中的数字值编码为十六进制。由于您要将整数文字传递给WriteInteger(),因此需要在前缀上加上,$以使编译器将其解释为十六进制:
reg.WriteInteger('BrowserFlags', $80000024);
话虽如此,请注意,您正在写HKEY_LOCAL_MACHINE,更重要的是,您正在打开具有KEY_ALL_ACCESS访问权限(使用的默认访问权限TRegistry)的密钥。这将要求您以管理员身份运行提升了级别的应用程序(如果尚未运行)。您应该将TRegistry.Access属性设置为KEY_SET_VALUE,甚至可以HKEY_CURRENT_USER改为写入。
procedure RegOpenExplorer;
var
reg: TRegistry;
begin
reg := TRegistry.Create(KEY_SET_VALUE);
try
reg.RootKey := HKEY_LOCAL_MACHINE; // or HKEY_CURRENT_USER
if reg.OpenKey('SOFTWARE\Classes\Word.Document.12\', true) then
try
reg.WriteInteger('BrowserFlags', $80000024);
finally
reg.CloseKey;
end;
finally
reg.Free;
end;
end;
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.04088306427002 seconds