.net column
.NET開発者のためのブログメディア

ツールの設定

C#のコマンド実行するには?実行方法ついてご紹介

2020年09月26日

SE
C#でのコマンド実行について詳しく教えてください。

PM
では実際のコードを見ていきましょう。

C#でのコマンド実行について


今回は、C#でのコマンド実行について説明します。
C#では、コマンドプロンプトやメモ帳などの外部コマンドを実行することができます。
C#でのコマンド実行に興味のある方はぜひご覧ください。

コマンドを実行する

まずはC#でコマンドプロンプトを起動するプログラムを作成します。
コマンドプロンプトを起動して、dirコマンドを実行してみます。

実際のソースコードを見てみましょう。
プログラムの先頭に「using System.Diagnostics;」を記述してください。

実行すると、コマンドプロンプトが表示され、dirコマンドが実行されることが分かります。
dirの前の”/k”は、実行後にウィンドウを閉じないために指定します。
×ボタンでコマンドプロンプトを終了させてください。

このように、C#では、Process.Start()でコマンドを実行することができます。

コマンドの実行結果を取り込む

C#で、コマンド実行結果を取り込むことができます。
コマンドプロンプトのdirコマンドの実行結果を取り込むプログラムを作成します。

実際のソースコードを見てみましょう。

標準出力や標準エラー出力、および終了コードなどが取得できます。
実行すると、dirコマンドの実行結果(標準出力)が MessageBox に表示されることが分かります。

コマンドの終了を待つ

WaitForExitメソッドで、実行したコマンドが終了するまで待ち合わせることができます。
WaitForExitメソッドは同期的に待ち合わせるため、待ち合わせ中は以降の命令は実行されません。

実際のソースコードを見てみましょう。

コマンドプロンプトを×ボタンで終了させると、MessageBox が表示されます。

上記のサンプルプログラムでは、コマンドプロンプトが終了するまで待ち合わせていますが、引数に待ち合わせる最大時間をミリ秒単位で指定することもできます。
指定した時間が経過すると、コマンドプロンプトが終了していなくても WaitForExit メソッドが終了し、以降の命令が実行されます。
プロセスが終了したか否かは、Process.HasExited プロパティで判断できます。

実際のソースコードを見てみましょう。

5秒待ち合わせた後にコマンドプロンプトが残っているか否かを確認し、MessageBox に表示します。
このように、WaitForExit メソッドを使用して、コマンドの終了を待ち合わせることができます。

コマンドの終了を通知する

WaitForExit メソッドでコマンド終了を待つのではなく、終了イベントを通知することもできます。

実際のソースコードを見てみましょう。

コマンドプロンプトの×ボタンをクリックすると、イベントが通知され、MessageBox が表示されることが分かります。
このように、WaitForExit メソッドでコマンド終了を待つのではなく、終了イベントを通知することもできます。

管理者としてコマンドを実行する

管理者としてコマンドを実行するには、processStartInfo.Verb = “RunAs” を追加する必要があります。

実際のソースコードを見てみましょう。

実行すると、ユーザーアカウント制御の確認メッセージが表示されます。
「はい」を選択すると、管理者権限のコマンドプロンプトが開きます。
コマンドプロンプトの左上に「管理者」と表示されています。

SE
外部プログラムを実行することがコマンド実行と言うことなんですね。

PM
メモ帳などのコードを実行することもできます。うまく活用すれば、開発のスピードアップにも繋がるのでぜひマスターしましょう。

まとめ

いかがでしたでしょうか。
C#ではコマンド実行することができ、その実行結果を取り込むことができます。
コマンドの終了を待ち合わせたり、コマンド終了イベントを通知することもできます。
ぜひご自身でC#のソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags