管理者権限で実行する(マニフェスト)

VB Tips And Sample(HOME)(VB.NET Sample インデックス)

VistaでコンパイルしたEXEを実行するとき、
常に管理者権限で実行しなければならない場合、
右クリック「管理者として実行」
プロパティーを開いて「特権レベルの管理者~」にチェック
などがお手軽な方法であるが
PGのEXEフォルダと同じフォルダに「マニフェスト」を入れておけばPG実行時にUACダイアログが出て管理者の許可を求めてくれるようになる。

<?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="test" type="win32"/>
      <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
         <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator"/> 
         </requestedPrivileges>
      </security>
   </trustInfo>
</assembly>



赤文字の所にPG名、UTF-8で「test.exe.manifest」として保存する。
<>は都合上全角になっているので半角、スペースも半角にしてください。
こちらからDL可
Vistaで試した所、UACダイアログが出て許可を求めるようになる。
が、ディスクトップに「test.EXE」「test.exe.manifest」を置いてEXEを実行してもUACダイアログは出ない。
ディスクトップにフォルダを作ってその中に「test.EXE」「test.exe.manifest」を置いてEXEを実行するとUACダイアログがでる。
という?な現象がある。
しかしながら、これでなんとか管理者権限で実行できるようだ。

このマニフェストだとXPsp2は落ちる云々の情報があるようだが、VS2005のSP1で解消されているらしく、管理人のXPsp2では問題なかった。
参考サイト
http://blogs.msdn.com/tsmatsuz/archive/2006/11/01/windows-vista-uac.aspx
http://natchan-develop.seesaa.net/article/32618667.html
http://blog.livedoor.jp/osadasoft/archives/2006-11.html
VB Tips And Sample(HOME)(VB.NET Sample インデックス)