【问题标题】:NSIS installer opens up in the backgroundNSIS 安装程序在后台打开
【发布时间】:2026-01-08 17:00:02
【问题描述】:

我有一个需要 UAC 提升的 NSIS 安装程序。当我的 setup.exe 通过 Chrome 或 IE 执行时,会显示 UAC 提升对话框,但是当用户确认时,Chrome 会回到前面并在其后面打开安装程序。

我正在使用 UAC 插件 (0.2.2c) 并且该错误已被讨论了一点 here,但即使我删除了插件的所有痕迹,问题仍然存在。有什么想法吗?

【问题讨论】:

  • 只有“RequestExecutionLevel admin”的简单测试安装程序有同样的问题吗?

标签: uac nsis


【解决方案1】:

我从未验证过这一点,但我相信当 NSIS 安装程序启动时可能存在竞争条件(在验证/CRC 对话框关闭和“真实”对话框的第一页启动之间)如果我的假设是正确的,启动时可能会有一小段时间没有可见的窗口,前景焦点会转移到其他地方。

希望 UAC 插件很快就会更新...(.onInit 中没有窗口,所以这就是它有问题的原因)

【讨论】:

  • NSIS 中是否有任何命令可以再次将其带到前台?
  • 不是真的,NSIS 有 BringToFront 命令,但它很可能只是闪现任务栏,一旦你失去焦点,你就无法真正重新获得它(没有丑陋的 hack)
【解决方案2】:

问题在于在 .OnInit 问题中调用 inetc 插件。请参阅示例here

【讨论】: