.NET 3.0 をターゲットとする WPF アプリケーションに取り組んでいます。管理者権限が必要なexeを呼び出す必要があります。次のようなものを使用して、UAC に許可を求めるプロンプトを表示させることができます。
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Verb = "runas";
startInfo.UseShellExecute = true;
startInfo.FileName = "target.exe";
Process p = new Process();
p.StartInfo = startInfo;
p.Start();
私の問題は、標準出力をリダイレクトする必要があることです。そうすると、次のようUseShellExecute = true
な例外が発生します。
IO ストリームをリダイレクトするには、Process オブジェクトの UseShellExecute プロパティを false に設定する必要があります。
ただし、false に設定すると、UAC は許可を求めるプロンプトを表示せず、次のような例外が発生します。
要求された操作には昇格が必要です
標準出力をリダイレクトして UAC のプロンプトを表示するにはどうすればよいですか?
この同様の質問を見たことがありますが、解決策は app.manifest を使用してアプリケーションに管理者権限を与えることです。これは、要件のために私ができないことです。