模拟下一次单击INSTFILES页面,将用户带到自定义页面(NSIS)

模拟下一次单击INSTFILES页面,将用户带到自定义页面(NSIS),nsis,Nsis,这是我的用例: 我正在使用NSIS创建卸载程序。 在卸载过程中,我处于“MUI_UNPAGE_INSTFILES”页面。 在“部分卸载”代码中删除了文件。 现在,我需要用户通过模拟“MUI_UNPAGE_INSTFILES”中的“下一步”按钮,进入自定义页面。 我确实检查了“MUI_UNFINISHPAGE_NOAUTOCLOSE”,但我的代码中没有定义它。但它不会自动移动到下一页 这是为卸载程序定义页面的代码: UninstPage custom un.UninstConfirm_Show ;

这是我的用例:

我正在使用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)
我需要从第二页移动到第三页,而无需用户单击第二页的“下一步”按钮。

有什么想法吗?

使用以下代码模拟单击“下一步”按钮:

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

仅供参考:

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

我以前尝试过,但它不起作用。无论如何,我通过在卸载部分的末尾调用
un.unistfinish\u Show
解决了这个问题。感谢您的输入。假设un.UninstFinish\u Show是一个nsDialogs页面,这并不是正确的解决方案,您不应该强制页面以这种方式显示。@Boney请开始接受答案。Me和Anders为您的许多NSIS问题提供了有效的答案,但没有您的确认,我们不会得到声誉,这在这里很重要。嗨,Slappy。是的,我接受对我有用的答案。其中一些,我必须尝试一下,因为当我得到答案时,我已经采取了另一种方法。不管怎样,我真的很感谢你们两个帮我解答问题。