星期五, 10月 23, 2020

[C#] 以系統管理員身分執行此程式

要讓應用程式可以以系統管理員身分來執行,可以在 [應用程式清單檔案 (app.manifest)] 內設定requestedExecutionLevel 參數

先在 Project 內新增  應用程式清單檔案 (app.manifest)

[C#] 以系統管理員身分執行此程式-1

應用程式清單檔案 (app.manifest) 內就可以看到 requestedExecutionLevel 參數,預設為 asInvoker,變更為 requireAdministrator 就行,其實 comment 備註內都有說明,下面只擷取 requestedExecutionLevel 參數內容而已
<?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>
</assembly>

設定完成後,執行檔案圖示右下角就會有個盾牌出現

[C#] 以系統管理員身分執行此程式-3

不透過應用程式清單檔案 (app.manifest) 來設定的話,也可以直接去執行檔內進行設定 

沒有留言:

張貼留言