背景授予在沒有UAC提示的情況下啓動時啓動的應用程序的管理員權限?
我寫了一個小的C#/。NET 4.0應用程序,從安裝在Program Files文件,並從不同的機器上同一遊戲的其他副本遊戲同步的各種設置(認爲Chrome的書籤同步,但是這個遊戲)。同步本身是一個相對簡單的事情,處理存儲在遊戲的Program Files文件夾中的文件。
在我的機器上,這工作正常,無需通過UAC提升我的應用程序。 Windows 7使遊戲使用程序文件虛擬化,我的應用程序正常工作。
但是,在很多測試儀的機器上,我得到報告說應用程序無法使用這些文件,並且在來的情況下甚至無法看到遊戲的文件夾!讓用戶右鍵單擊並以「以管理員身份運行」解決每種情況下的問題。
所以,我們只是設置應用程序的清單要求管理員權限,對吧?當用戶手動調用應用程序或同步過程時,這很好(雖然不理想),因爲它們將與應用程序交互並準備好接受UAC請求。
但是,我的應用程序的功能之一是「自動同步」選項,它允許用戶「設置並忘記」應用程序。使用此設置,應用程序會將自己放入HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run註冊表中,以便在啓動時運行,並在系統托盤中根據需要同步後臺中的設置。
顯然,我需要在這裏變得更聰明。一旦用戶登錄到他們的賬戶或之後的隨機間隔,提出UAC提示並不是前進的方向。
所以,我的問題!
在需要管理員權限的啓動時需要運行應用程序時,處理這種情況的最佳方法是什麼?有沒有辦法讓用戶授權安裝,導致系統在啓動/登錄時沒有提示而自動運行具有正確權限的應用程序?
更新要明確,這必須在代碼中可以實現。
我認爲這會啓發你:http://stackoverflow.com/questions/2488632/win-c-run-app-as-administrator-without-uac-prompt/2488645#2488645乾杯:) – Machinarius 2011-01-09 16:01:48