私のプログラムをクライアントマシンにインストールした後、Windows 7で管理者としてプログラムを実行するように強制するにはどうすればよいですか?
プログラムに埋め込まれるマニフェストを変更する必要があります。これは、Visual Studio 2008以降で動作します。プロジェクト+新規項目の追加で、「アプリケーションマニフェストファイル」を選択します。
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
ユーザーがプログラムを起動すると、UACプロンプトが表示されます。ユーザーの忍耐力はすぐになくなってしまうので、賢く利用しましょう。
マニフェストに requestedExecutionLevel
要素を追加することは、戦いの半分に過ぎません。UAC がオフにできることを覚えておく必要があります。UAC]1がオフになっている場合は、昔ながらの方法でチェックを行い、ユーザーが管理者でない場合はエラーダイアログを表示しなければなりません
(スレッドの CurrentPrincipal
で IsInRole(WindowsBuiltInRole.Administrator)` を呼び出します)。
EXEファイルにマニフェストファイルを埋め込むことで、Windows(7以降)が常に管理者としてプログラムを実行するようにすることができます。
詳細は、Step 6: Create and Embed an Application Manifest (UAC) (MSDN)に記載されています。