2012-02-25 91 views
2

如果您希望UAC提升應用程序在Windows啓動時運行,您需要一項服務。但是,服務應用程序缺乏特定的功能,例如創建MessageBox或執行其他文件。 現在的問題是:如何使用UAC提升創建啓動應用程序以及使用GUI和Process.Start()的能力?服務與處理

+0

我敢打賭,是說要在Win啓動啓動程序的註冊表項。 – 2012-02-25 20:38:16

+0

是的,但在啓用UAC時不起作用。這就是我尋找不同方式的原因。 – bytecode77 2012-02-25 22:32:55

回答

2

我也有這個問題。正如IDWMaster提到的,解決方案是使用Windows任務計劃程序。不要以爲這是一個便宜的選擇 - 我認爲它比服務更好。相當多的軟件都使用Windows任務計劃程序來運行管理任務。爲什麼?正如你所知,服務不能夠很好地與桌面交互 - 例如,如果你在服務中創建了全局鍵盤鉤子,它將不會捕獲鍵。爲什麼不正常的註冊表啓動密鑰因爲正如您所熟知的那樣,需要管理權限的程序無法以管理員使用註冊表啓動密鑰的方式自動啓動。使用Windows任務計劃程序解決了所有這些問題。

這裏有一個很好的書房,使得它的喜悅與Windows任務計劃程序在C#接口: http://taskscheduler.codeplex.com/

0

使用任務計劃程序可以安排任務在用戶以交互方式登錄時運行。

1

您可以使用NSSM創建存根服務以啓動任何應用程序。

1

您可以使用任務計劃程序,並且在設置新任務時,在常規選項卡上,您可以選擇包括管理員在內的用戶以及「以最高權限運行」。 在觸發器選項卡上選擇「On Startup」。