System.Diagnostics.Processクラスを使うと外部のアプリケーションを起動する事が出来る。
詳細はこちら↓
Processクラスでは起動させるとき動詞を指定する事が出来る。
起動するファイルの種類によって利用できる動詞が変わるが、EXEファイルの場合管理者として実行させる為の動詞がある。
EXEファイルを管理者として実行する
以下はペイントを管理者として実行する例。
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) { }
StartInfoプロパティのVerbへ"RunAs"を指定する。
動詞(Verb )を利用する場合はStartInfoプロパティのUseShellExecuteがTrueである必要がある。
startメソッド実行時に、UACによる権限昇格の確認ダイアログが表示されて管理者として起動する事が出来る。ちなみにこの確認ダイアログで「いいえ」が選択されると例外が発生する。
利用可能な動詞の種類を知る
起動するファイルの種類によって利用できる動詞は異なるが、指定のファイルで利用できる動詞の種類はStartInfoプロパティのVerbsから取得する事が出来る。
尚、Verbsを使う前に必ずStartInfoプロパティのFileNameへ起動するファイル名を指定しておく必要がある。
コメントをお書きください