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