安装完成后,我将以这种方式启动我的 Windows 应用程序:
!define MUI_FINISHPAGE_RUN_FUNCTION "LaunchApplication"
...
Function LaunchApplication
ExecShell "" "$INSTDIR\Application.exe"
FunctionEnd
但这有一个奇怪且不受欢迎的副作用。显然我的应用程序是以管理员权限启动的。
我无法在 Web 浏览器(使用 Firefox 和 IE 测试)和我的应用程序之间拖放任何数据。
如果我退出我的应用程序(会话从 NSIS 开始),然后从开始菜单图标重新启动它,一切正常!- 我可以毫无问题地拖放到浏览器。
所以我怀疑,因为在安装开始时有一个 UAC 请求,所以 UAC 权限会以某种方式转移到我在安装后启动的进程中。由于浏览器在低安全性进程中运行,Windows 拒绝与它们交换任何数据(在使用 NSIS 启动的进程实例中)。
如何从 NSIS 启动一个 exe,这样这个 UAC/安全问题就不会发生?