Checkbox 记住NSIS安装过程中单击“上一步”时的复选框状态

Checkbox 记住NSIS安装过程中单击“上一步”时的复选框状态,checkbox,nsis,back,Checkbox,Nsis,Back,我的客户安装程序页面上有一个复选框 ${NSD_CreateCheckbox} 0 0 100% 15 "Check to run" Pop $SvcCheckBox CreateFont $0 "$(^Font)" "10" SendMessage $SvcCheckBox ${WM_SETFONT} $0 1 GetFunctionAddress $0 OnCheckbox nsDialogs::OnClick $SvcCheckBox $0 如果用户返回此页面,我希望记住这一点 我已经使

我的客户安装程序页面上有一个复选框

${NSD_CreateCheckbox} 0 0 100% 15 "Check to run"
Pop $SvcCheckBox
CreateFont $0 "$(^Font)" "10"
SendMessage $SvcCheckBox ${WM_SETFONT} $0 1
GetFunctionAddress $0 OnCheckbox
nsDialogs::OnClick $SvcCheckBox $0
如果用户返回此页面,我希望记住这一点

我已经使用下面的代码尝试了这一点

${NSD_OnBack} "pageLeave"

FunctionEnd


Function pageLeave
    ${NSD_GetState} $SvcCheckBoxState $SvcCheckBox
FunctionEnd
但是,如果用户取消选中该复选框,转到下一页,返回到此页,则该复选框将再次选中。我需要它保持不受控制


如何在页面加载时实现我的pageLeave复选框状态?

创建页面时,需要初始化复选框状态。除非您想在复选框更改时更新页面上的其他内容,否则不需要On*处理程序

!include nsDialogs.nsh

Var CheckboxState
Var hCheckbox

Function .onInit
StrCpy $CheckboxState ${BST_CHECKED} ; Set initial/default state
FunctionEnd

Page Components
Page Custom MyPageCreate MyPageLeave
Page Components
Page InstFiles

Function MyPageCreate
nsDialogs::Create 1018
Pop $0

${NSD_CreateCheckbox} 0 0 100% 15 "Check to run"
Pop $hCheckbox
${NSD_SetState} $hCheckbox $CheckboxState

nsDialogs::Show
FunctionEnd

Function MyPageLeave
${NSD_GetState} $hCheckbox $CheckboxState
FunctionEnd

Section
DetailPrint State=$CheckboxState
SectionEnd

创建页面时,需要初始化复选框状态。除非您想在复选框更改时更新页面上的其他内容,否则不需要On*处理程序

!include nsDialogs.nsh

Var CheckboxState
Var hCheckbox

Function .onInit
StrCpy $CheckboxState ${BST_CHECKED} ; Set initial/default state
FunctionEnd

Page Components
Page Custom MyPageCreate MyPageLeave
Page Components
Page InstFiles

Function MyPageCreate
nsDialogs::Create 1018
Pop $0

${NSD_CreateCheckbox} 0 0 100% 15 "Check to run"
Pop $hCheckbox
${NSD_SetState} $hCheckbox $CheckboxState

nsDialogs::Show
FunctionEnd

Function MyPageLeave
${NSD_GetState} $hCheckbox $CheckboxState
FunctionEnd

Section
DetailPrint State=$CheckboxState
SectionEnd