wxExecute 无法执行需要管理员权限 UAC 的文件

wxExecute can't execute file that needs admin permissions UAC

来自 wxWidgets 应用程序我尝试 运行 安装程序,使用 NSIS,处于静默模式(/S 标志)。收到此错误:

Execution of command: "C:\somecommand.exe" failed (error 0: Операция завершена успешно / Successful).

当我 运行 从命令行静默安装程序时,我得到了 UAC 弹出窗口,但是当我从 wxWidget 应用程序执行它时,我只得到这个错误。这个错误意味着什么?喜欢 "Fatal Error: All is fine".

在 NSIS 脚本中,我有 RequestExecutionLevel admin,因为我真的需要它能够在 Program Files 等目录中安装程序。

要启动需要提升的 Windows 应用程序,您必须使用 ShellExecute and not CreateProcess,CreateProcess 将失败并出现需要提升的错误。

我想 wxLaunchDefaultApplication 在内部使用 ShellExecute 但依赖它似乎有点冒险所以你不妨使用 ifdef:

#ifdef __WINDOWS__  // __WXMSW__
ShellExecute(0, 0, pathtoexe, parameters, 0, SW_SHOW);
#else
wxExecute(something);
#endif