跳到主要內容

[C#] 使用App.manifest讓程式可以administrator權限運行

於辦公室環境中,Windows 7以上環境使用UAC避免程式取得過大權限
但如何讓程式於執行時可以取得較高權限則需要於開發時加入app.manifest指定




以下範例為Visual Studio 2015為環境
1. 新增app.manifest
2. 其中,加入requestExecutionLevel level=requireAdministrator
則標示此程式可以系統管理員身分運行

<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- UAC 資訊清單選項
             如果要變更 Windows 使用者帳戶控制層級,請將
             requestedExecutionLevel 節點以下列其中之一取代。

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" />
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

            指定 requestedExecutionLevel 項目會停用檔案及登錄虛擬化。
            如果您的應用程式需要針對回溯相容性進行這項虛擬化,請移除這個
            項目。
        -->
        <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>

3. 執行Build完成後,執行Exe則會出現下列UAC確認視窗

張貼留言

這個網誌中的熱門文章

[遊記] 20160710 廈門 - 中山路步行街,鼓浪嶼

此次趁出差之便,於周末從廈門翔安區到島內搭船到鼓浪嶼來看看這素有海上花園之稱的地方


[遊記] 20161018-19 美西自由行Day 4-5:優勝美地國家公園(Yosemite National Park) @ California, US

優勝美地國家公園,雖然不知道中文譯名是從何而來的,但實際到此體會才知道這個譯名實如其名

Glacier Point眺看半圓頂(Half Dome)