NSIS:在自定义页面中,如果选中复选框,如何启用目录请求输入

NSIS: In a custom page how to enable a Dir Request Input if a checkbox is checked

我最初将 DirRequest 输入标志设置为禁用,如何在我的自定义页面中选中复选框后将其设置为启用?

使用通知标志:

!include InstallOptions.nsh
!include LogicLib.nsh

Page Custom MyPageCreate MyPageLeave
Page Components

Function MyPageCreate
InitPluginsdir
; A real installer would not write the .ini like this, it would extract a file
WriteIniStr "$PluginsDir\mypage.ini" Settings NumFields 2
WriteIniStr "$PluginsDir\mypage.ini" "Field 1" Type Checkbox
WriteIniStr "$PluginsDir\mypage.ini" "Field 1" Text "They call me the toggler"
WriteIniStr "$PluginsDir\mypage.ini" "Field 1" Left 0
WriteIniStr "$PluginsDir\mypage.ini" "Field 1" Right 200
WriteIniStr "$PluginsDir\mypage.ini" "Field 1" Top 0
WriteIniStr "$PluginsDir\mypage.ini" "Field 1" Bottom 14
WriteIniStr "$PluginsDir\mypage.ini" "Field 1" Flags NOTIFY
WriteIniStr "$PluginsDir\mypage.ini" "Field 2" Type DirRequest
WriteIniStr "$PluginsDir\mypage.ini" "Field 2" State "$InstDir"
WriteIniStr "$PluginsDir\mypage.ini" "Field 2" Left 0
WriteIniStr "$PluginsDir\mypage.ini" "Field 2" Right 200
WriteIniStr "$PluginsDir\mypage.ini" "Field 2" Top 20
WriteIniStr "$PluginsDir\mypage.ini" "Field 2" Bottom 34
WriteIniStr "$PluginsDir\mypage.ini" "Field 2" Flags DISABLED
!insertmacro INSTALLOPTIONS_DISPLAY "mypage.ini"
FunctionEnd

Function MyPageLeave
!insertmacro INSTALLOPTIONS_READ [=10=] "mypage.ini" "Field 1" "State"
!insertmacro INSTALLOPTIONS_READ  "mypage.ini" "Field 2" "hWnd"
EnableWindow  [=10=]
!insertmacro INSTALLOPTIONS_READ  "mypage.ini" "Field 2" "hWnd2"
EnableWindow  [=10=]

!insertmacro INSTALLOPTIONS_READ [=10=] "mypage.ini" "Settings" "State"
${If} [=10=] > 0
    Abort
${EndIf}
FunctionEnd