管理者権限起動
近年のWindowsは管理者権限がないと使えない機能が多々あります。
アプリケーションから外部プロセスを起動するときに管理者権限で起動したいときが出てきました。
解決方法
Verbプロパティを”RunAs”にして起動すればよいみたいです。
解決例を2つ挙げておきます。
例その1
string exeName = "application.exe";
string args = "";
var startInfo = new ProcessStartInfo(exeName, args)
{
Verb = "Runas"
};
var process = Process.Start(startInfo);
process.WaitForExit();
例その2
try
{
var proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = @"c:\Windows\System32\mspaint.exe";
proc.StartInfo.Verb = "RunAs";
proc.StartInfo.UseShellExecute = true;
proc.Start();
}
catch (Exception e) { }
自分自身を管理者権限で起動する方法
自分自身で管理者権限に昇格するのはむずかしいので、管理者権限をつけた別プロセスを起動して自分を終了します。詳細はこちらをご覧ください。