代码保存在注册表中的设置

ziz*_*zil 2 delphi registry application-settings

我有一个弹出菜单..每次用户登录系统时,都会出现弹出菜单,但对于不希望弹出窗口显示在屏幕上的用户,我使用复选框以便每次登录时都不会显示弹出窗口.我想如何在注册表中保存选中复选框的用户的设置,以便不显示弹出菜单

Ger*_*lí- 5

您可以使用TRegistry类从/向注册表读取/保存值.
见帮助; 有一些使用样本.

阅读一些像这样:

 RegNGFS:= TRegistry.Create;
   try
     RegNGFS.RootKey := HKEY_CURRENT_USER;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', FALSE) then begin
       MaxSteps:= RegNGFS.ReadInteger('MaxSteps');
       StopIN:= RegNGFS.ReadInteger('StopIN');
     end;
   finally
     RegNGFS.Free;
   end;
Run Code Online (Sandbox Code Playgroud)

对于写,有些像这样:

   RegNGFS:= TRegistry.Create;
   try
     RegNGFS.RootKey := HKEY_CURRENT_USER;
     if RegNGFS.OpenKey('SOFTWARE\NGFS', TRUE) then begin
       RegNGFS.ReadInteger('MaxSteps', MaxSteps);
       RegNGFS.ReadInteger('StopIN', StopIN);
     end;
   finally
     RegNGFS.Free;
   end;
Run Code Online (Sandbox Code Playgroud)

你测试一些方法,如WriteBool,ReadBool,ReadString,WriteString,...
问候

  • HKEY_LOCAL_MACHINE?是1995年又有人忘了告诉我了吗?!! 说真的,用户设置在HKEY_CURRENT_USER中有很多原因,其中最重要的是用户通常没有对HKEY_LOCAL_MACHINE的写访问权.此外,写代码应该是写而不是阅读. (9认同)
  • @David Heffernan; 请看,这是一个非常简单的示例,可以看到类TRegistry和保存/写入方法.用户必须指定正确的密钥才能保存值. (4认同)
  • @Neftali好的,但它在很多方面都被打破了.如果值不存在,则读取将失败.而且您的示例代码中没有写入内容.它不编译.是的我知道你的意思,但你可能想稍微编辑一下代码.至于HKLM/HKCU肯定只是一个简单的例子,选择一个不需要任何权利并且实际上符合OP的要求是有意义的. (3认同)
  • @Neftalí现在好了,但它仍然没有写入注册表.再看一下代码 - 它只包含读命令! (2认同)