我正尝试使用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