微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

delphi – 非管理员模式下的注册表访问

我有几个用Delphi编写的长期应用程序,它们在注册表中保留了它们的设置.我已经将HKEY_LOCAL_MACHINE用于“硬”设置(如配置首选项)和HKEY_CURRENT_USER用于“软”信息,例如窗口位置,MRU列表等.

现在我的用户告诉我,在非管理员(标准用户)模式下,应用程序不起作用.看,我看到当应用处于管理模式时,我无法读取放入HKEY_LOCAL_MACHINE的设置.

我有什么选择?我对标准模式以及它如何影响对注册表的访问几乎一无所知.任何信息赞赏.

解决方法

您可以作为非管理员用户从HKLM阅读;你不能写信给它.

构造它时使用TRegistry.Create(KEY_READ),并将RootKey设置为HKLM.

var
  Reg: TRegistry;
begin
  Reg := TRegistry.Create(KEY_READ)
  try
    Reg.RootKey := HKLM;
    // Read value here
  finally
    Reg.Free;
  end;
end;

打开特定的注册表项时,也可以使用TRegistry.OpenKeyReadOnly();这也有助于非管理员访问注册表区域.

原文地址:https://www.jb51.cc/delphi/103005.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐