小编Chr*_*oss的帖子

无法从注册表中读取密钥

我听说Windows为PC创建了一个名为"MachineID"的唯一密钥.我在我的注册表中找到了两个位置.只有"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography"位置应该是正确的.我尝试通过此函数读取值:

    Function GetMaschineID:string;
var
Reg : TRegistry;

//HKEY_CURRENT_USER\Software\Microsoft\MSNMessenger    =   {dd239a44-fa0d-43ff-a51c-5561d3e39de3}
//HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography   =   a06b0ee0-b639-4f55-9972-146776bcd5e4
begin
Reg := TRegistry.Create(KEY_READ);
try
Reg.Rootkey:=HKEY_LOCAL_MACHINE; //Hauptschlüssel
//Reg.RootKey:=HKEY_CURRENT_USER;
if Reg.OpenKey('SOFTWARE\Microsoft\Cryptography\',false) then //Unterschlüssel öffnen
//if Reg.OpenKey('Software\Microsoft\MSNMessenger\',false) then //Unterschlüssel öffnen
    begin
    Result:=Reg.ReadString('MachineGuid');
    end;
finally
     Reg.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)

此版本导致空字符串; 你看到注册表的结果评论."hkey_Current_user"的第二个版本带来了预期的字符串结果.

我的代码有什么问题,或者注册表的部分内容是否受到保护?

delphi registry

1
推荐指数
1
解决办法
2071
查看次数

标签 统计

delphi ×1

registry ×1