c# uac 無効 - .NETアプリケーションを強制的に管理者として実行するにはどうすればよいですか?





6 Answers

requestedExecutionLevel要素をマニフェストに追加するrequestedExecutionLevelは、戦闘の半分にすぎません。 UACをオフにできることを覚えておく必要があります。 そうであれば、古い学校の方法をチェックし、ユーザーが管理者でない場合はエラーダイアログを表示する必要があります
(スレッドのCurrentPrincipal IsInRole(WindowsBuiltInRole.Administrator)を呼び出します)。

vb.net 回避 表示しない

私のプログラムがクライアントマシンにインストールされたら、私のプログラムをWindows 7上で管理者として実行するにはどうすればいいですか?







Visual Studio 2008で作業しているときに、 Project -> Add New Itemを右クリックし、 Application Manifest File選択しApplication Manifest File

マニフェストファイルには、 requestedExecutionLevelというタグrequestedExecutionLevel 、そのレベルを3つの値に設定できます。

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

または

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

または

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

管理者として実行するようにアプリケーションを設定するには、中間のものを選択する必要があります。




毎時

<requestedExecutionLevel level="highestAvailable" uiAccess="false" />

アプリケーションマニフェストをまだ持っていない場合、または追加する方法がわからない場合は、アプリケーションマニフェストを追加することをお勧めします。 一部のプロジェクトでは別のマニフェストファイルが自動的に追加されないため、まずプロジェクトプロパティに移動して[ アプリケーション ]タブに移動し、プロジェクトがタップの下部にあるマニフェストを除外していないことを確認します。

  • 次に、プロジェクトを右クリックします。
  • 新しいアイテムを追加
  • 最後に、アプリケーションマニフェストファイルを見つけてクリックします。



これはこのanswer簡略版です

public bool IsUserAdministrator()
{
    try
    {
        WindowsIdentity user = WindowsIdentity.GetCurrent();
        WindowsPrincipal principal = new WindowsPrincipal(user);
        return principal.IsInRole(WindowsBuiltInRole.Administrator);
    }
    catch (Exception)
    {
        return false;
    }
}



実行可能ファイルを右クリックして、[プロパティ]> [互換性]に移動し、[このプログラムを管理者として実行する]チェックボックスをオンにします。

すべてのユーザーの管理者として実行する場合は、「すべてのユーザーの設定を変更する」で同じ操作を行います。




Related