在64位操作系统中,读取/修改HKLM节点下内容时HKLM默认是访问的32位节点。
此时需要判断操作系统位数。
代码如下:
function GetHKLM: Integer;
begin
if IsWin64 then
Result := HKLM64
else
Result := HKLM32;
end;
function MyAppDir(Param: String): String;
var InstallLocation: string;
begin
if RegQueryStringValue(GetHKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\aaaaa',
'InstallLocation', InstallLocation) then
begin
// Successfully read the value
MsgBox('InstallLocation: ' + InstallLocation, mbInformation, MB_OK);
end;
result := InstallLocation;
end;
begin
if IsWin64 then
Result := HKLM64
else
Result := HKLM32;
end;
function MyAppDir(Param: String): String;
var InstallLocation: string;
begin
if RegQueryStringValue(GetHKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\aaaaa',
'InstallLocation', InstallLocation) then
begin
// Successfully read the value
MsgBox('InstallLocation: ' + InstallLocation, mbInformation, MB_OK);
end;
result := InstallLocation;
end;