Mar*_*uis -1 delphi registry delphi-12-athens
我正在尝试使用该类TRegistry读取 Windows 中的注册表值。
有人给我发送了一个如何使用它的示例,但代码不起作用。
uses Windows, Registry;
...
procedure TForm1.Button1Click(Sender: TObject);
var
Registry: TRegistry;
ProductName: string;
begin
Registry := TRegistry.Create(KEY_READ); // or KEY_WRITE if you want to modify the value
try
Registry.RootKey := HKEY_LOCAL_MACHINE;
ProductName := Registry.GetValue('SOFTWARE\Microsoft\Windows NT\CurrentVersion', 'ProductName', '');
ShowMessage('The product name is: ' + ProductName);
finally
Registry.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
这不是找GetValue。所以也许这不是TRegistry工作方式,或者它的工作方式在新版本的 Delphi 中已经改变了。我不确定,而且 Embarcadero docwiki 已关闭,所以我也无法在那里检查。
怎样TRegistry运作?如何使用它从注册表中读取值?
TRegistry 上没有 GetValue 方法,因此他们发送给您的代码是错误的,或者他们使用了未提供的帮助程序类。一种方法是这样做:
procedure TForm1.Button1Click(Sender: TObject);
var
Registry: TRegistry;
ProductName: string;
begin
Registry := TRegistry.Create(KEY_READ); // or KEY_WRITE if you want to modify the value
try
Registry.RootKey := HKEY_LOCAL_MACHINE;
ProductName := '';
if Registry.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion', False) then
try
ProductName := Registry.ReadString('ProductName');
finally
Registry.CloseKey;
end;
ShowMessage('The product name is: ' + ProductName);
finally
Registry.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)