我正在尝试更新现有安装程序以读取注册表值(如果存在)并在执行升级安装时更改安装设置以匹配现有安装设置。
但是我因为无法成功读取注册表值而陷入困境。
我在安装程序中写了这样的密钥:
WriteRegDWORD HKLM "Software\${PRODUCT}" "IniPath" 0x00000026
这部分工作正常,密钥是创建或修改的,并且是DWORD类型,一切都很好。
但是如果我试着读回那个值,我似乎每次都得到一个空值。
ReadRegDWORD $IniPath HKCU "Software\${PRODUCT}" "IniPath"
MessageBox MB_OK "$$IniPath=$IniPath"
打印结果$IniPath=
在阅读之前我也尝试过ClearErrors
,之后IfErrors
尝试了{I}错误...但我不明白为什么会出现错误并且看不到错误键。我正在运行32位窗口,所以我怀疑这是64位“错误的注册表部分”错误。
写DWORD的行正常工作。如果我删除了注册表项,并在之后立即使用regedit检查注册表,那么密钥就在那里。但无论密钥是否存在。
那么导致它无法读取值或者如何调试它可能会出错?