NSIS自动接受对话框处于静默模式

NSIS自动接受对话框处于静默模式,nsis,Nsis,我有一个nsis安装程序,其中有一个自定义对话框,其中有一个接受按钮,但当我在静默模式下运行它时,它不接受该对话框。如何使其自动单击静默接受? IfSilent Accepted MessageBox MB_YESNO "Accept?" IDNO Skipped Accepted: // some code when accepted Skipped: 如果您的对话框是标准的消息框,只需将/SD button\u id\u to\u use参数添加到,告知NSIS在静默模式下使用的选项:

我有一个nsis安装程序,其中有一个自定义对话框,其中有一个接受按钮,但当我在静默模式下运行它时,它不接受该对话框。如何使其自动单击静默接受?

    IfSilent Accepted
    MessageBox MB_YESNO "Accept?" IDNO Skipped
    Accepted:
    // some code when accepted
    
    Skipped:
    
  • 如果您的对话框是标准的
    消息框
    ,只需将
    /SD button\u id\u to\u use
    参数添加到,告知NSIS在静默模式下使用的选项:

    MessageBox MB_YESNO "Accept?" /SD IDNO IDNO Skipped
    
  • 如果您的对话框是自定义页面,问题是在静默模式下,根本不涉及任何页面(甚至隐藏),也不会触发页面回调。您需要选中
    IfSilent
    ,并分别从
    .onInit
    或某个部分调用由Accept按钮触发的逻辑


无需使用
IfSilent
测试进行模拟:
MessageBox
/SD
参数专用于silent moderight,但这仅适用于标准MessageBox命令-不适用于自定义MessageBox pluginyes,但在您的示例中显示了如何跳过标准MessageBox:)真的,纯粹的懒惰。不管怎样,如果你仍然考虑使用这个自定义消息框插件,你可能不应该:你没有显示你的代码…您需要添加带有按钮ID的
/SD
,以便在静默模式下进行选择,您需要将其放在消息和按钮列表之间,但它不是消息框,而是对话框抱歉,我忽略了它是自定义对话框而不是消息框的事实。请参阅我编辑的答案。