【发布时间】:2010-12-24 14:16:34
【问题描述】:
我的应用程序中有一个更新功能 - 它会下载并验证安装程序(一个 setup.exe,使用 NSIS 创建)。为了真正开始更新,我一直在做:
QString path = .. absolute path to the downloaded file ...
QProcess::startDetached(path, QStringList());
这在 XP 上运行良好 - 但在 Vista 和 Win7 上,下载完成后没有任何反应。如果我浏览到下载的更新并手动运行它,它工作正常。我假设正在发生的事情是 UAC 在 CreateProcess 时阻止了安装程序,但这是我的知识耗尽的地方。
其他复杂情况 - 当我从命令行运行调试构建时,上述步骤有效 - 我收到 UAC 提示并可以运行安装程序。这是发布版本,从开始菜单/快捷方式开始,有问题 - 我假设从命令 shell 运行时身份验证令牌有所不同。
【问题讨论】: