SQLの窓

2017年12月05日


Windows SDK の mt.exe を使用して、既存の exe を常に管理者権限で起動を求めるように変更する

Microsoft Windows SDK for Windows 7 and .NET Framework 4

テストしたのは、TeraPad.exe です。ショートカットアイコンを作成するとこんなアイコンになりました。(右側は AN HTTP Server です)

 

マニフェストファイルの作成

TeraPad.exe と同じディレクトリに、TeraPad.exe.manifest を作成して以下のような内容を書き込みます
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"  
    manifestVersion="1.0"> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
        <requestedPrivileges> 
        <requestedExecutionLevel 
        level="requireAdministrator"/> 
        </requestedPrivileges> 
    </security> 
    </trustInfo> 
</assembly>

これに関しては、アプリケーション開発者向け Microsoft Windows 7 対応アプリケーションの互換性 で記述されています。

mt.exe で manifest を埋め込めるという事が上記リンクに書かれてあったので、試してみました。コマンドラインは以下のようになっています。
"C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\mt.exe" -manifest TeraPad.exe.manifest -outputresource:TeraPad.exe
このコマンドラインは、『マニフェストを C/C++ アプリケーションに埋め込む』に書かれています。

変更した exe と 元の exe を fc /b で比較すると、確かに違うものである事が確認されました。さらに、変更された exe を他の場所にコピーして実行しても、管理者である事を確認する『暗転+ダイアログ表示』が実行されることが確認できました。

インストール直後から管理者マーク

つまり、ビルド時にすでにそのような要件の元作成されているアプリケーションは、自動的に管理者の盾マークが表示されているので、それを削除する事は通常できません。

関連する記事

実運用では無く、学習用の WWWサーバーとしてはこれ以外に無い『AN HTTP Server』ですが、古いソフトなので使い方にコツがあります



【Windowsの最新記事】
posted by lightbox at 2017-12-05 19:43 | Windows | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり