2012-03-31 16 views
4

當在Windows資源管理器(Windows 7)中刪除文件,如果需要管理員權限以刪除文件時,顯示該對話框:如何實現自定義UAC特權UI?

enter image description here

有沒有辦法實現這種效果在我應用程序嗎?

目前我發起一項進程「以管理員身份」來執行相同的行動類別(更換文件,而不是將它刪除),所以向用戶顯示的通用UAC對話框,詢問:

「做你想讓下面的程序改變這臺電腦?「

在第三方應用程序中,資源管理器顯示的是一種有用的UI(與通用UAC對話框相對)嗎?

我猜測沒有,因爲它會允許第三方以偷偷摸摸的方式提升特權。

回答

2

Windows 7的默認設置是大多數系統組件不顯示UAC對話框。

如果您將設置更改爲始終提示,您將看到單擊資源管理器對話框中的繼續將創建正常的UAC提示。

作爲非系統二進制,代碼除了在最寬鬆的UAC設置將始終提示(永不提示。)

+0

是的,的確如此:您可以在任何您想要的UI中顯示高程輸入按鈕(在此情況下爲繼續),但升級過程將始終顯示系統確認提示,無論您是啓動新過程還是創建升高COM對象。 – 2012-04-01 05:59:26

4

使用Button_SetElevationRequiredState到屏蔽添加到按鈕。當用戶按下按鈕時,use the COM elevation moniker創建助手對象。

+0

感謝您設置盾牌圖標的指針。我最終使用了SendMessage,因爲我沒有正確的#defines來使用這個函數/宏(我不想用#define _Win32來繞過)。 – mackenir 2012-04-02 11:49:25

+0

我不能使用COM,所以我只是運行一個exe的副本作爲管理員,有一些特殊的cmdline選項指示它'做管理員的東西'。 – mackenir 2012-04-02 11:50:42

+0

盾牌圖標僅僅是一個提醒用戶,「如果你按下這個按鈕,有人會要求你提升權限,所以不要感到驚訝。」要求提升權限的一種方法是使用COM,但命令行也起作用。 – 2012-04-02 17:47:04