既存のインストーラーを更新してレジストリ値 (存在する場合) を読み取り、アップグレード インストールの実行時に既存のインストール設定と一致するようにインストール設定を変更しようとしています。
しかし、レジストリ値を正常に読み取れないことに悩まされています。
インストーラーで次のようにキーを書き込みます。
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 を使用してレジストリを調べると、キーはそこにあります。ただし、キーが存在するかどうかに関係なく。
では、値の読み取りに失敗する原因、またはこれをデバッグする方法は何ですか?