gpt4 book ai didi

delphi - 在注册表中将数据设置为子项时出错

转载 作者:行者123 更新时间:2023-12-03 19:24:55 25 4
gpt4 key购买 nike

我正在尝试编写新 key ,即 Mode 并为其分配一个值,我的系统是 32 位的,代码如下。我收到以下代码的错误,因为无法为模式设置数据我已尝试通过将不同的参数设置为 reg.Access 进行所有纠正,但没有成功。我总是必须保持 reg.Access 对 KEY_READ 与 KEY_WRITE 一样,它不会在 reg.OpenKey 方法中打开子项。

  reg := TRegistry.Create(KEY_READ);
reg.RootKey := HKEY_LOCAL_MACHINE;

if (not reg.KeyExists('\Software\MyApp\appname\')) then
begin
MessageDlg('Key not found! Created now.', mtInformation, mbOKCancel, 0);
end;

reg.Access:= KEY_READ;
openResult := reg.OpenKey('\Software\MyApp\appname\',True);
if not openResult = True then
begin
MessageDlg('Unable to create key! Exiting.', mtError, mbOKCancel, 0);
Exit();
end;


if not reg.KeyExists('Mode') then
begin
reg.WriteString('Mode','trial');
end;

最佳答案

KEY_READ为您提供读取权限。但这对你来说还不够。你通过TrueCanCreate OpenKey 的论点所以需要KEY_CREATE_SUB_KEY访问标志。然后您尝试写入一个值,这需要 KEY_WRITE访问标志。

您的问题可能是您的进程以没有足够权限的用户身份执行。您需要确保您的程序以足够的权限运行。通常这意味着以管理员身份运行它。使用应用程序 list 来强制执行,或 runas动词,无论哪种方法最适合您的应用程序。

关于delphi - 在注册表中将数据设置为子项时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47650884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com