C#ProcessStartInfoパラメータやプロセスを起動するための一般的な方法

逐語大きな柱  https://www.dazhuanlan.com/2019/08/26/5d634448991f8/


WindowStyleを

プロセスウィンドウを設定するためのGUI。コントロールパネルのプロセス無効。

また、GUIプロセスは、このパラメータを無視するためのイニシアチブを取ることができます。

あるUseShellExecute

システム実装の実装を参照して(true)か、プロセス作成プロセス(偽)です。

真同等のユーザーがドキュメントをダブルクリックすると、この時間はFileName、実行可能ファイル(.exeファイル)、これらに限定されない、URL等、バットの文書ができ、
プロセスは、偽の使用のためにCreateProcess、プロセスを作成するためのプロセスをより詳細に制御するが、FileName実行可能でなければなりませんドキュメントファイル(.exe)。

トレードオフ:

管理者、または実行するには、実行可能ファイルではありませんようにコマンドを実行することができた場合、この値はtrueでなければなりません。

必要性は、入力と出力(RedirectStandard * = true)をリダイレクトする場合は、この値はfalseでなければなりません。

CreateNoWindow

効果的なコントロールパネルウィンドウ、あるUseShellExecuteは、組み合わせて使用​​します。

あるUseShellExecute =真の値が無効である場合には、通常の起動モード。

偽あるUseShellExecute =;ときCreateNoWindow = trueの場合、コントロールパネルウィンドウが表示されません。このように、プロセスは、ウィンドウで閉じることができないので、プロセスは、あなた自身をオフに実行、または閉じるために、タスクマネージャに行く必要がことができる最高の仕上がりを実行します。

動詞

「印刷」、「編集」、「管理者として実行」および他のオプションになります文書に応じて、「開く」に加えて、文書のメニューを右クリックし、動詞の制御は、このオプションです。

あなたは可能new ProcessStartInfo(FileName).Verbs動詞の特定の文書のサポートを表示します。

一般的な起動モード

管理ファイル名を指定して実行

ProcessStartInfo.Verb = "RunAs";

管理プロセスでは、通常の権限として実行

ProcessStartInfo.FileName = "RunAs";
ProcessStartInfo.Arguments = $"/trustlevel:0x20000 {YOUR_COMMAND}";

YOUR_COMMAND実行したいコマンドのために、スペースを含むその周りの引用符を使用し、コマンドに引用符が含まれている場合は、する必要が"場所に。

実行CMDコマンドで

ProcessStartInfo.FileName = "cmd";
ProcessStartInfo.Arguments = $"/c {YOUR_COMMAND}";

YOUR_COMMAND上記と同様に、その代わりに引用符の、2つのコマンドを使用します"- > ""

ドキュメントを検索するエクスプローラ

PATHは、文書は次のとおりです。

ProcessStartInfo.FileName = "explorer";
ProcessStartInfo.Arguments = $"/select, {PATH}";

ディレクトリパスをするとProcessStartInfo.Arguments = PATH;することができます。

サポートライブラリチェーンの呼び出し

私は、ライブラリを書いた:) XJKdotNetLibrary

それは次のように包装、デモを行うための一般的な方法を求めて:

ProcessInfoChain.New(Command, Args)
    .SetWindow(WindowType.Maximized)
    .LaunchBy(LaunchType.CmdStart)
    .RunAs(Privilege.Admin)
    .Excute()
    .Catch(ex=>{throw ex;})
    .Finally(result=>{ });

シンプルなパッケージもあります。

Cmd.Explorer("C:\");
Cmd.RunSmart("http://xujinkai.net");
Cmd.RunAsAdmin("cmd", "");
//...

ようこそ参照〜

おすすめ

転載: www.cnblogs.com/petewell/p/11411393.html