3

.exe ファイルを呼び出す C# アプリケーションがあります。この実行可能ファイルは、管理者権限で開始する必要があります。しかし、管理者権限でアプリケーションを実行したくありません。
そのために次のコードを使用します。

ProcessStartInfo procStartInfo = new ProcessStartInfo("foo.exe");
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;
procStartInfo.Verb = "runas";
Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();
proc.WaitForExit();

アプリケーションを特定のフォルダーに配置しないと、すべてが正常に機能し、実行可能ファイルを呼び出すと、ユーザーは管理者として実行するように求められます。しかし、アプリケーションを「Program Files」フォルダに入れて起動すると、実行ファイルを呼び出すときに、管理者として実行することに疑問はありません。そのため、実行は失敗します。
Windows 7 を使用していますが、実行可能ファイルが "Program Files" フォルダーにありません。このファイルを常に管理者として実行し、アプリケーションでは実行しない方法はありますか?

4

2 に答える 2

1

管理者として実行する必要があることを示すマニフェストをターゲット アプリケーションに追加するだけです。それに対する責任は、一般に、それを開始するアプリケーションではなく、開始されるアプリケーションにあります。

例外は、メモ帳が呼び出されて共有構成ファイルを開くなどのケースですが、それを判断するのに十分な詳細を提供していません。

于 2013-09-05T09:24:40.550 に答える