【问题标题】:Simulate next click on INSTFILES page to take user to a Custom Page (NSIS)模拟下一次单击 INSTFILES 页面以将用户带到自定义页面 (NSIS)
【发布时间】:2023-04-07 14:15:01
【问题描述】:

这是我的用例:

我正在使用 NSIS 创建卸载程序。
我在卸载流程中位于“MUI_UNPAGE_INSTFILES”页面。
文件在“部分卸载”代码中被删除。
现在我需要通过模拟“MUI_UNPAGE_INSTFILES”中的下一个按钮单击将用户带到自定义页面。
我确实检查了“MUI_UNFINISHPAGE_NOAUTOCLOSE”,但我没有在我的代码中定义它。它仍然不会自动移动到下一页。

这是为卸载程序定义页面的代码:

UninstPage custom un.UninstConfirm_Show ;1st page (custom page)
!insertmacro MUI_UNPAGE_INSTFILES ;2nd page
UninstPage custom un.UninstFinish_Show ;3rd & final page (custom page)

我需要从第 2 页移动到第 3 页,而无需用户单击第 2 页中的下一步按钮。
有什么想法吗?

【问题讨论】:

    标签: nsis


    【解决方案1】:

    使用以下代码模拟点击下一步按钮:

    GetDlgItem $0 $HWNDPARENT 1
    SendMessage $HWNDPARENT ${WM_COMMAND} 1 $0
    

    仅供参考:http://forums.winamp.com/showthread.php?t=187143

    【讨论】:

    • 我之前确实尝试过,但它不起作用。无论如何,我通过在Section Uninstall 末尾调用un.UninstFinish_Show 来解决它。感谢您的投入 Slappy。
    • 假设 un.UninstFinish_Show 是一个 nsDialogs 页面,这不是真正正确的解决方案,您不应该强制页面显示为这样。
    • 嗨,Slappy。是的,我正在接受对我有用的答案。其中一些,我必须尝试一下,因为当我得到答案时,我已经采取了另一种方法。无论如何,我真的很感谢你们两个帮助我回答问题。
    【解决方案2】:

    当使用 MUI 完成页面时,MUI 在 un.onGUIInit 中调用 SetAutoClose true,但您可以在 卸载程序部分 中调用 SetAutoClose true 以达到相同的效果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多