【问题标题】:NSIS Custom Page MessageBox jump to next pageNSIS 自定义页面 MessageBox 跳转到下一页
【发布时间】:2019-08-16 21:08:21
【问题描述】:

页面自定义模式PageCreate ModePageLeave

Function ModePageLeave
    MessageBox MB_YESNO "Installer is now going to uninstall existing software and reinstall software. Database files will be removed. Please confirm to proceed!" IDYES true IDNO false
        true:
        call silentUninst

        false:
        System::Call 'USER32::PostMessage(i$HWNDPARENT,i0x408,i-1,i0)'
        #Abort
FunctionEnd

我有一个自定义页面,我想在用户单击下一步时显示一个消息框(自定义页面的下一个)

现在点击下一个消息框会出现并需要用户确认。然后,如果用户单击“是”,它应该转到下一页,如果“否”,那么它应该保留在同一个自定义页面上。

使用此代码,无论单击是或否,我都会获得相同的自定义页面。每次我只坚持自定义页面。

【问题讨论】:

    标签: nsis


    【解决方案1】:

    来自文档:

    离开功能允许您使用Abort 强制用户停留在当前页面上。

    您的代码始终执行false: 部分。

    你可以改成

    Function ModePageLeave
        MessageBox MB_YESNO "Something?" IDYES true IDNO false
            true:
            call silentUninst
            goto done
    
            false:
            System::Call 'USER32::PostMessage(i$HWNDPARENT,i0x408,i-1,i0)'
            done:
    FunctionEnd
    

    但使用官方方法要好得多:

    Page Components
    Page Custom myPageCreate myPageLeave
    Page Directory
    Page Instfiles
    
    Function myPageCreate
    nsDialogs::Create 1018
    Pop $0
    nsDialogs::Show
    FunctionEnd
    
    Function myPageLeave
    MessageBox MB_YESNO "Something?" IDYES goNext
      Abort ; Stay on page
    goNext:
    FunctionEnd
    

    【讨论】:

      【解决方案2】:
      Function ModePageLeave
          MessageBox MB_YESNO "Installer is now going to uninstall existing software and reinstall software. Database files will be removed. Please confirm to proceed!" IDYES true IDNO false
              true:
              call silentUninst
              abort
      
              false:
              System::Call 'USER32::PostMessage(i$HWNDPARENT,i0x408,i-1,i0)'
              #Abort
      FunctionEnd
      

      【讨论】:

      • 对你未来的cmets也请添加一些解释
      猜你喜欢
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 2023-04-07
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      • 2017-08-03
      相关资源
      最近更新 更多