2012-07-06 30 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