有人能告诉我这段代码有什么问题吗?
[Code]
const
OldVersionRegKey = 'SOFTWAREMicrosoftWindowsCurrentVersionUninstall{#MyAppId}_is1';
var
HasOldVersion: Boolean;
function GetKey : Integer;
begin
if IsWin64 then
Result := HKLM64
else
Result := HKLM32;
end;
procedure CheckOldVersion;
begin
HasOldVersion := RegKeyExists(GetKey, OldVersionRegKey);
// ...
end;
,因为无论我做答案是False
而存在的关键呢?
我已经尝试了一切,关键不在错误结果寄存器中,关键在错误结果寄存器中,在不同级别的数据库上,在32位数据库上,在64位数据库上,根据体系结构对两者进行测试(如当前代码),但无事可做,结果总是相同的。
提前感谢您的帮助。
关键路径的开头不应该有斜杠。查看RegKeyExists
文档中的示例。
const
OldVersionRegKey = 'SOFTWAREMicrosoftWindowsCurrentVersionUninstall{#MyAppId}_is1';
当你不使用64位安装模式时,根密钥总是HKLM32
。
HasOldVersion := RegKeyExists(HKLM32, OldVersionRegKey);
或者,如果您希望脚本与64位安装模式兼容,请使用Is64BitInstallMode
,而不是IsWin64
。