1
我试图更新现有安装程序以读取注册表值(如果存在),并在执行升级安装时更改安装设置以匹配现有安装设置。NSIS:从注册表中读取DWORD?
但我越来越无法成功读取注册表值。
我写这样的键在安装程序中:
WriteRegDWORD HKLM "Software\${PRODUCT}" "IniPath" 0x00000026
这部分工作得很好,关键是创建或修改,并且是DWORD类型的,一切都很好。
但是,如果我尝试读取该值,我似乎每次都会得到一个空值。
ReadRegDWORD $IniPath HKCU "Software\${PRODUCT}" "IniPath"
MessageBox MB_OK "$$IniPath=$IniPath"
结果打印$IniPath=
我也试过后阅读和IfErrors
之前做ClearErrors
,而且它似乎进入IfErrors ...但我不明白为什么它会是有错误并没有看到钥匙。我正在运行32位窗口,所以我怀疑这是64位“注册表的错误部分”错误。
写DWORD的行工作得很好。如果我删除了注册表项,然后立即使用regedit检查注册表,那么密钥就在那里。但不管钥匙是否存在。
那么,怎么会导致它无法读取值,或者如何调试呢?
Doh!我完全应该抓住这一点 – 2012-07-28 20:04:20