我使用NSIS创建了一个安装程序。在那我已经包括2个单选按钮。每当用户选择任何单选按钮时,它立即开始执行,但我想在选择单选按钮后,只有在用户按下自定义按钮后才开始执行,然后说下一步。
那么如何在我的脚本中添加按钮(比如说Next)以及如何连接我的单选按钮选择呢?
部分代码段如下:
Function mode_selection
nsDialogs::Create 1018
Pop $dialog
${NSD_CreateLabel} 0 10 75% 20u "Choose your preference....."
Pop $0
${NSD_CreateRadioButton} 20 60 100% 25u "Execution Mode"
Pop $hwnd
${NSD_AddStyle} $hwnd ${WS_GROUP}
${NSD_OnClick} $hwnd exec_mode
${NSD_CreateRadioButton} 20 90 100% 25u "Debug Mode "
Pop $hwnd
${NSD_OnClick} $hwnd debug_mode
nsDialogs::Show
FunctionEnd
Function exec_mode
;some code
FunctionEnd
Function debug_mode
;some code
FunctionEnd
答案 0 :(得分:0)
!include nsDialogs.nsh
!include LogicLib.nsh
Page custom mode_selection
var hwndExecModeRadio
Function mode_selection
nsDialogs::Create 1018
Pop $0
${NSD_CreateLabel} 0 10 75% 20u "Choose your preference....."
Pop $0
${NSD_CreateRadioButton} 20 60 80% 25u "Execution Mode"
Pop $hwndExecModeRadio
${NSD_AddStyle} $hwndExecModeRadio ${WS_GROUP}
${NSD_CreateRadioButton} 20 90 80% 25u "Debug Mode "
Pop $0
${NSD_CreateButton} 20 150 -40 14u "Do it"
Pop $0
${NSD_OnClick} $0 perform_mode
nsDialogs::Show
FunctionEnd
Function perform_mode
${NSD_GetState} $hwndExecModeRadio $0
${If} $0 = ${BST_CHECKED}
Call exec_mode
${Else}
Call debug_mode
${EndIF}
FunctionEnd
Function exec_mode
MessageBox mb_ok "exec_mode"
FunctionEnd
Function debug_mode
MessageBox mb_ok "debug_mode"
FunctionEnd