c#經由過程app.manifest使法式以治理員身份運轉。本站提示廣大學習愛好者:(c#經由過程app.manifest使法式以治理員身份運轉)文章只能為提供參考,不一定能成為您想要的結果。以下是c#經由過程app.manifest使法式以治理員身份運轉正文
微軟在Windows Vista開端引入了UAC(用戶帳戶掌握)新技巧(點擊這兒懂得甚麼是UAC)。當法式履行時須要權限的話,UAC會彈出正告新聞:讓用戶確認能否贊成許可這個法式轉變你的盤算機設置裝備擺設,windows須要獲得你的允許才可讓法式持續履行下去。
平日我們應用c#編寫的法式不會彈出這個提醒,也就沒法以治理員成分運轉。微軟的操作體系應用微軟的產物辦法固然是有的,經由過程app.manifest設置裝備擺設可使法式翻開的時刻,彈出UAC提醒須要獲得許可才可以持續,如許就取得了治理員的權限來履行法式。
辦法以下:
翻開vs2005、vs2008等工程,在【處理計劃資本治理器】裡檢查能否有app.manifest這個文件,假如沒有的話,經由過程以下辦法創立:
辦法1:
1、在【處理計劃資本治理器】右鍵工程稱號選擇屬性;
2、在彈出的該對話框中,選擇【平安性】選項卡。
3、勾選【啟用ClickOnce平安設置】,並選中【這是完整可托的運用法式】。
4、保留工程,這時候候app.manifest就主動創立了。
翻開app.manifest把默許的設置裝備擺設修正一下,經由過程代碼的正文,可以曉得須要修正的節點是【requestedExecutionLevel】
asInvoker : 假如選這個,運用法式就是以以後的權限運轉。
highestAvailable: 這個是以以後用戶可以取得的最高權限運轉。
requireAdministrator: 這個是僅以體系治理員權限運轉。
找到<requestedExecutionLevel level="asInvoker" uiAccess="false" />
把其改成<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
這時候候修正完成,按下F5停止調試,平日會收到以下的毛病提醒:【ClickOnce 不支撐要求履行級別“requireAdministrator”】。
工作似乎產生了互相抵觸,下面開啟【ClickOnce】便主動創立了app.manifest,如今修正了app.manifest卻提醒:ClickOnce 不支撐要求履行級別“requireAdministrator”。
處理辦法是:只需把【啟用ClickOnce平安設置】不勾選便可以了。
假如操作步調准確,按下F5停止調試,會彈出以下的提醒框,VS具有晉升的權限。
如許我們編寫的運用法式在運轉後,就會起首彈出如許一個提醒框 , 點【Yes】後,法式才可以持續運轉,而且取得體系治理員的權限。
辦法2:
為工程項目添加一個類,運用法式清單文件(app.manifest)。
然後可以看到app.manifest的地位不在Properties屬性裡了,釀成在援用裡了,其節點內容也少了一些。
剩下的辦法和下面雷同。如許跳過了【啟用ClickOnce平安設置】這步,直接履行,不會失足了。