我正嘗試使用nsDialogs在我的nsis腳本中創建安裝後配置頁面。我的腳本用於收集輸入並執行配置,但是我完成後從來沒有提供完成/關閉/退出按鈕。目前我的網頁聲明如下:如何在nsDialogs頁面後獲得完成按鈕
Page directory
Page instfiles
Page custom nsDialogsPage nsDialogsPageLeave
我怎樣才能得到一個完成/退出/完成按鈕,顯示nsDialogsPageLeave執行後?
我正嘗試使用nsDialogs在我的nsis腳本中創建安裝後配置頁面。我的腳本用於收集輸入並執行配置,但是我完成後從來沒有提供完成/關閉/退出按鈕。目前我的網頁聲明如下:如何在nsDialogs頁面後獲得完成按鈕
Page directory
Page instfiles
Page custom nsDialogsPage nsDialogsPageLeave
我怎樣才能得到一個完成/退出/完成按鈕,顯示nsDialogsPageLeave執行後?
經典的NSIS UI沒有完成頁面,instfiles頁面通常是最後一頁,它會在所有節執行後顯示「完成按鈕」。如果您想提供您自己的完成頁面,您可以將任何按鈕的文本設置爲與SendMessage $hwndButton ${WM_SETTEXT} 0 "STR:$(^CloseBtn)"
相同的字符串。
大多數安裝的instfiles頁面之前請求所需的信息,如果你不能做到這一點,那麼你可能想使用Modern UI,它會爲你提供一個完成頁:
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
Page custom nsDialogsPage nsDialogsPageLeave
!insertmacro MUI_PAGE_FINISH
這是一個有點不清楚給我,如果你想要兩頁;輸入頁面,然後是完成頁面或組合輸入/完成頁面。的組合頁面是有點怪異,但它是可能的:
!define AppName "Test"
Name "${AppName}"
Outfile "${AppName} setup.exe"
InstallDir $temp
!include LogicLib.nsh
!include WinMessages.nsh
!include nsDialogs.nsh
Var MyEndConfigPageStage
Page Directory
Page InstFiles
Page Custom MyEndConfigPageCreate MyEndConfigPageLeave /EnableCancel
Function MyEndConfigPageCreate
StrCpy $MyEndConfigPageStage 0
GetDlgItem $0 $hwndparent 1
SendMessage $0 ${WM_SETTEXT} 0 "STR:&Apply"
nsDialogs::Create 1018
Pop $0
${NSD_CreateCheckBox} 0 13u 100% -13u "FooBar"
Pop $1
nsDialogs::Show
FunctionEnd
Function MyEndConfigPageLeave
${If} $MyEndConfigPageStage > 0
Return
${EndIf}
${NSD_GetState} $1 $2
ClearErrors
WriteIniStr "$instdir\settings.ini" Dummy "FooBar" $2
${If} ${Errors}
MessageBox mb_iconstop "Unable to apply settings!"
Abort
${EndIf}
IntOp $MyEndConfigPageStage $MyEndConfigPageStage + 1
GetDlgItem $0 $hwndparent 1
SendMessage $0 ${WM_SETTEXT} 0 "STR:$(^CloseBtn)"
GetDlgItem $0 $hwndparent 2
EnableWindow $0 0 ;Disable cancel
EnableWindow $1 0 ;Disable the checkbox
Abort
FunctionEnd
Section
SectionEnd
是的,我最終移動配置屏幕之前insfiles。不過,我正在試圖將整個事物轉換爲Modern UI。 – JeffreyABecker 2012-02-07 21:46:53
經典NSIS用戶界面(又名不使用現代UI)沒有完成頁面,你要單獨完成頁面或只是改變的名稱您的自定義頁面上的按鈕? – Anders 2012-02-06 22:54:43