我不知道我的错误。它总是跳转到else
分支,但密钥存在,我检查了几次。
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;
答案 0 :(得分:11)
您需要致电ValueExists
而不是KeyExists
。密钥在Regedit中显示为文件夹,但您在密钥nginx.exe
中查找名为HKCU\Software\...\Run
的值。
其他一些评论:
OpenKeyReadOnly
而不是OpenKey
。OpenKeyReadOnly
的返回值,以防无法打开密钥。