好吧,我有一个QProcess作为我的程序更新程序,但是在Windows上你不能在运行时修改exe文件,但是如果你关闭创建Updater进程的程序,我认为Updater也关闭了。可以使Updater进程独立吗?
然后,在Windows Vista(及更高版本)上运行我的更新程序是不可能的,因为它返回我需要将我的级别提升为管理员,是否可以提升进程的权限?
答案 0 :(得分:1)
首先,与Linux相反,Windows进程默认独立于父进程,并且在父进程关闭后不会关闭。
解决问题的正确方法是让更新程序成为 Windows服务。然后,它不会被应用程序启动,它将具有写入系统文件夹等的权限(参见here)
Here is库提供Qt中的服务支持(实际上可行)。
如果您想要更简单的解决方案,可以使用ShellExecute升级权限以启动更新程序。