gpt4 book ai didi

delphi - 如何检查注册表项是否存在

转载 作者:行者123 更新时间:2023-12-03 14:57:50 25 4
gpt4 key购买 nike

我不知道我的错误在哪里。总是跳到else分支,但是key是存在的,我检查了好几次。

var
reg : TRegistry;
begin
with TRegistry.Create do try
RootKey:=HKEY_CURRENT_USER;
OpenKey('\Software\Microsoft\Windows\CurrentVersion\Run', False);
if KeyExists('nginx.exe') then begin
ShowMessage('Ja geht ist da');
Result := True;
btnAutostart.ImageIndex := 5
end
else begin
Result := False;
btnAutostart.ImageIndex := 0;
end;
finally
Free;
end;
end;

最佳答案

您需要调用ValueExists而不是KeyExists 。键是在 Regedit 中显示为文件夹的内容,但您正在查找名为 nginx.exe 的值。在关键HKCU\Software\...\Run .

其他一些评论:

  1. 由于您仅从注册表中读取内容,因此请使用 OpenKeyReadOnly而不是OpenKey .
  2. 检查OpenKeyReadOnly的返回值万一 key 打不开。
  3. 如果您确实需要使用 HKLM 执行此操作(如您在评论中所述),请在 64 位系统上运行 32 位进程时注意注册表重定向困惑。

关于delphi - 如何检查注册表项是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16938305/

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