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