2012-07-06 35 views
0

好了,我有工作作为我的程序更新一个QProcess中,但在Windows不能修改时,他们正在运行的exe文件,但如果你关闭创建的程序更新程序进程,我想更新程序也关闭。可以使更新程序独立?另外,QProcess:请独立和问题的过程与Windows

然后,在Windows Vista中(及更高版本),这是不可能运行我的更新,因为它返回,我需要提高我的水平给管理员,它可以提升该进程的权限?

回答

1

首先,在对面的Linux,Windows进程独立于父母的默认和父进程关闭后不会被关闭。

解决您的问题的正确方法是让您的更新程序为Windows服务。然后,它不会被应用程序启动,它将有权写入系统文件夹等(请参阅here

Here is Qt中的服务支持库(以及它实际工作)。

如果你想更简单的解决方案,你可以使用ShellExecute升级权限启动您的更新。

+0

有可能使用这些库与QProcess中来吗? (我需要进程间通信) – Blastcore 2012-07-06 21:19:53

+1

@Blastcore,如果你想与服务进行通信,可以使用排序插座,或者您也可以到服务发送简单的命令(见'sendCommand'功能)。但是你会**不能**直接(通过管道)与流程进行沟通,从privillges升级_anyway_开始。 – Lol4t0 2012-07-06 22:00:39