2010-07-24 99 views

回答

0

這是不可能的。您可能擁有的最接近的體驗就是創建一個服務來運行提升和一個無升級運行的Winforms應用程序,它只是服務的前端。儘管如此,你必須小心,如果你沒有正確地關閉牆,可能會引起安全問題。

+0

我想我必須這樣做,謝謝! – Red 2010-07-24 07:18:46

3

你不能。在未經用戶同意的情況下運行的唯一另一種方式是作爲計劃任務。

+0

errm,所以服務是唯一的方法?那麼,服務能否啓動我的應用程序?我的應用程序有一些圖形組件,這就是爲什麼我不能使它成爲服務。 – Red 2010-07-24 03:21:45

+0

嗯,你有沒有試過預定的任務? – fardjad 2010-07-24 06:25:10

+0

您不想讓服務啓動您的應用程序,因爲您必須將其標記爲與桌面交互,並且應用程序將運行提升。這開闢了巨大的可能性,該程序可以被利用來運行提升的其他程序並且基本上危害整個機器。 – 2010-07-24 14:28:16

1

Windows在啓動時不會運行升級的應用程序,因爲它不想提示您啓動一百萬啓動應用程序。從技術上講,您可以通過編寫一個簡單的啓動器來解決這個問題,即ShellExecute是您的真實應用程序,但是這會在啓動時提示您,並且非常煩人。其他人所說的最佳方法是將您需要管理權限的任務轉移到服務中,並將用戶界面分開。

1

我建議您閱讀關於UAC team's blog regarding why startup applications are blocked from requiring elevation的帖子。有一點需要考慮:要求提升完全阻止標準用戶使用您的應用。

官方指導:您的啓動程序不應該要求提升。說實話,我很難想象一個場景,你可以合理地要求在啓動應用程序提升。您能否提供更多關於的詳細信息爲什麼您需要提升?

+1

我的猜測是他試圖將特定的管理功能委託給標準用戶,或者他正在解決上游應用程序設計問題。 – 2010-07-24 14:30:33

相關問題