Tof*_*nov 6 delphi registry windows-identity windows-7
下面的代码示例用于返回我之前的windows id,但现在它不起作用,并返回空字符串,dunno为什么.
function GetWindowsID: string;
var
Registry: TRegistry;
str:string;
begin
Registry := TRegistry.Create(KEY_WRITE);
try
Registry.Lazywrite := false;
Registry.RootKey := HKEY_LOCAL_MACHINE;
// Registry.RootKey := HKEY_CURRENT_USER;
if CheckForWinNT = true then
Begin
if not Registry.OpenKeyReadOnly('\Software\Microsoft\Windows NT\CurrentVersion') then showmessagE('cant open');
end
else
Registry.OpenKeyReadOnly('\Software\Microsoft\Windows\CurrentVersion');
str := Registry.ReadString('ProductId');
result:=str;
Registry.CloseKey;
finally
Registry.Free;
end; // try..finally
end;
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
gab*_*abr 23
这是因为虚拟化密钥'\ Software\Wow6432Node\Microsoft\Windows NT\CurrentVersion \'不包含'ProductID'项.
修改代码以创建TRegistry实例
Registry := TRegistry.Create(KEY_WRITE OR KEY_WOW64_64KEY);
Run Code Online (Sandbox Code Playgroud)
其中KEY_WOW64_64KEY = $ 0100.这将给你预期的结果.
或者,使用DSiWin32并致电
DSiReadRegistry('\Software\Microsoft\Windows NT\CurrentVersion',
'ProductID', '', HKEY_LOCAL_MACHINE, KEY_QUERY_VALUE OR KEY_WOW64_64KEY);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29588 次 |
| 最近记录: |