最終更新:2023-12-18 (月) 12:36:48 (128d)  

UAC
Top / UAC

USB Audio Class

UAC/バージョン

USB Audio Class 2.0

USB Audio Class 1.0

User Account Control

マニフェストファイル({AppName?}.manifest)に設定を書く必要がある

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="WindowsApplication1" type="win32"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
         <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator"/> 
         </requestedPrivileges>
      </security>
   </trustInfo>
</assembly>

ひな形

    <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="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>

requestedExecutionLevel?のlevel

権限
asInvoker親プロセスと同じアクセス権限(標準)
requireAdministrator管理者としての完全なアクセス権限
highestAvailable現在のユーザーが獲得できる最高のアクセス権限。つまり、現在のユーザーが管理者グループのメンバであれば、管理者権限となる

uiAccess

  • ユーザー補助アプリケーションの場合にのみ「true」に設定できる(既定値はfalse)。
  • これをtrueに設定すると、オンスクリーン・キーボードなどのユーザー補助のUI(ユーザー・インターフェイス)にアクセスできるようになる。

特定のアプリケーションを実行するときに「ユーザアカウント制御」ダイアログを表示させない - Compatibility Administrator で「カスタムの互換修正プログラム」を作成する

アプリケーションマニフェスト

  • UAC の動作を設定するのは、アプリケーションマニフェストと呼ばれる物になります。
  • 大きく分けると以下の3パターンで UAC の挙動を制御します。
    • EXE自体に埋め込む場合
    • ファイルとしてEXEと同じフォルダに設置
    • アプリケーションの互換モードにより設定(EXEを右クリックして管理者として実行等)

参考