Function Check32or64BitWindows
${If} ${RunningX64}
strcpy $INSTDIR "$PROGRAMFILES64\${APP_FULL_PATH}"
SetRegView 64
${Else}
SetRegView 32
strcpy $INSTDIR "$PROGRAMFILES32\${APP_FULL_PATH}"
${EndIf}
FunctionEnd
如果檢測到舊版本,然後我執行卸載程序不刪除註冊表
ExecWait '"$INSTDIR\uninst.exe" /S' $0
我卸載部分:
Section uninstall
!define APP_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_VENDOR} ${APP_NAME}"
!define APP_UNINST_ROOT_KEY "HKLM"
DeleteRegKey ${APP_UNINST_ROOT_KEY} "${APP_UNINST_KEY}"
SectionEnd
Section -Post
WriteRegStr ${APP_UNINST_ROOT_KEY} "${APP_UNINST_KEY}" "DisplayName" "${APP_FULL_NAME}"
SectionEnd
郵政部生成註冊表進入Windows 64b它是註冊表視圖,但卸載程序不會刪除註冊表項。
如果我刪除了對64位操作系統的檢查,那麼在Wow6432Node中註冊表的創建和刪除工作正常。
你安裝一個應用程序的x64? – Anders 2011-12-20 08:26:55
請格外小心。您在工作時會看到一個預覽圖,並且有一個工具欄可以幫助您處理大部分格式。我已經修復了它,但它仍然需要工作。 – 2011-12-20 08:30:12
我希望卸載程序不會刪除註冊表;-) – 2011-12-20 08:30:55