ほとんどの場合、通常のユーザーとして実行する必要があるプログラムがありますが、サービスを停止して開始する必要がある場合があります。ほとんどの場合通常のユーザーとして実行されるが、一部の機能のために管理者モードに昇格するプログラムを作成するにはどうすればよいですか?
Erin
質問する
510 次
3 に答える
2
実行中のプロセスを昇格させることはできませんが、次のいずれかを行うことができます:-
プロセスを昇格して再起動します
private void elevateCurrentProcess()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.UseShellExecute = true;
startInfo.WorkingDirectory = Environment.CurrentDirectory;
startInfo.FileName = Application.ExecutablePath;
startInfo.Verb = "runas";
try
{
Process p = Process.Start(startInfo);
}
catch
{
// User didn't allow UAC
return;
}
Application.Exit();
}
この方法は、プロセスが引き続き昇格して実行され、UAC プロンプトが表示されなくなることを意味します。良いことも悪いことも、オーディエンスによって異なります。
昇格が必要なコードを別のexeに入れます
マニフェストを requireAdministrator として設定し、別のプロセスとして開始します。このサンプルコードを参照してください
この方法は、操作を実行するたびに UAC プロンプトが表示されることを意味します。
最適な方法は、対象ユーザー (管理者の種類かどうか) と昇格操作の頻度によって異なります。
于 2008-11-20T04:06:25.500 に答える
1
私の知る限り、管理者として実行する別のプロセスを開始する必要があります。プロセスがすでに開始されていると、プロセスを昇格させることはできません。
この質問を参照してください。
于 2008-10-30T00:45:00.483 に答える
0
偽装と呼ばれるものを使用する必要があります。
[ http://support.microsoft.com/kb/306158][1]
上記は、ASP.Net アプリでそれがどのように達成されるかを示していますが、コードはおそらくあなたのニーズとほぼ同じです。
于 2008-10-30T00:38:43.927 に答える