用管理员权限写信给HKLM

jim*_*web 0 delphi

我正在使用'run as admin ...'运行我的delphi应用程序,右键单击exe.此应用程序具有以下代码以插入HKLM注册表.

begin
    kValue := 'testing';
    Reg.CloseKey;
    Reg.Free;
    try
      Reg := TRegistry.Create(KEY_READ OR KEY_WOW64_64KEY);
      Reg.RootKey := HKEY_LOCAL_MACHINE;
      Reg.OpenKey('SOFTWARE\explorev2', True);
      Reg.WriteString('test', kValue);
      Result := Reg.ReadString('test');
    except
      ;
    end;
Run Code Online (Sandbox Code Playgroud)

我得到例外'未能为'test'设置数据; 虽然应用程序以管理员权限运行.任何人都可以帮帮我..?

Chr*_*ris 6

您正在创建仅具有读访问权限的TRegistry对象:

Reg := TRegistry.Create(KEY_READ OR KEY_WOW64_64KEY);
Run Code Online (Sandbox Code Playgroud)

改为使用写访问权限创建它:

Reg := TRegistry.Create(KEY_WRITE or KEY_WOW64_64KEY);
Run Code Online (Sandbox Code Playgroud)