到目前爲止,我已經找到了如何通過讀取註冊表項,和測試是否存在目錄,以檢測以前安裝我的軟件。 (兩者在NSIS幫助文件中都有詳細記錄)。現在我想強制用戶指定一個不同的目錄,如果應用程序是以前安裝的。 (不想強迫自己卸載,因爲以前的版本只是刪除所有包括保存的數據)。NSIS - 強制用戶選擇不同的目錄
就我所見,MUI2.nsh中有許可證,安裝文件夾,進度指示器等預定義模板。 如何在安裝程序流程的此階段添加驗證?
更新 - 嘗試保羅的解決方案,但它不工作。 在腳本的頂部,我已經聲明
!define MUI_PAGE_CUSTOMFUNCTION_LEAVE validateDirectory
!insertmacro MUI_PAGE_DIRECTORY
引用這個功能:
Function validateDirectory
ReadRegStr $R0 HKLM "SOFTWARE\Aadhaar Enrolment Client" "Installdir"
Pop $R0
StrCmp $R0 $OUTDIR +1 +3
MessageBox MB_ICONSTOP|MB_OK 'The directory $OUTDIR already exists.Please choose a different directory.'
Abort
FunctionEnd
該功能顯示消息,但不會中止。而且,如果我在目錄選擇頁面點擊「返回」並再次點擊前進,則只需繼續安裝即可。
它已經有一段時間...沒有解決這個?特別是一個不使用MUI的人? – e40
沒有..我早就從使用NSIS轉向使用了。 – Rex
我只是提到,我確實得到它的工作,在NSIS論壇的幫助下。 http://forums.winamp.com/showthread.php?t=380848 – e40