どうも!リョクちゃです。
今回は、VB.Netから外部ファイルとしてバッチファイルを
起動させる方法を紹介していきます。
VB.Netでは全てを賄うことはできないことが多々あるため、
どうせなら別のプログラミング言語で処理ファイルを作成し、
そいつらに肩代わりさせようと思ったのがきっかけです。
ちなみに前回の記事はこちら
目次 [非表示]
バッチファイルの実行方法
VB.Netから外部ファイルを呼び出すには、
System.Diagnostics.ProcessStartInfoクラスを使用します。
このクラスを使うと、引数やコンソールウィンドウの表示に関する設定も
わかりやすいので便利です。
使い方
使うには、変数を用意しインスタンスを生成します。
とします。
※本来は、System.Diagnosticsの部分は、インポートで宣言するので省略できますが、
わかりやすいように書いています。
例) 変数名testInfoをProcessStartInfoでインスタンスを生成します。
Dim testInfo As New System.Diagnostics.ProcessStartInfo()
作成した変数の設定をカスタマイズ
バッチファイルの設定
起動したいバッチファイルを設定するには
ProcessStartInfo.FileNameを設定します。
※インスタンス化してある必要があります。
例)先ほど作成した変数testInfoに起動したいバッチファイルを渡す。
testInfo.FileName = “C:\test.bat”
コンソールウィンドウを開かないようにするには
※プログラム実行中に呼び出したバッチファイルの画面が表示されないようにする設定
と設定することでコンソールウィンドウを開かずに、
バッチファイルの呼び出し実行が可能になります。
例) 変数testInfoをコンソールウィンドウが開かないようにする。
testInfo.CreateNoWindow = True
testInfo.UseShellExecute = False
バッチファイルを呼び出す
外部からバッチファイルを呼び出すには、最後に
実例
実際に簡単にフォームを作って試してみます。
※こんなのを作ってみました。
ボタンが押されたら、バッチファイルが起動されるといったフォームになります。
今回、呼び出したいバッチファイルは下記の記事で作成したバッチを使います。
このバッチは、単に”Hello World”と出力するファイルになります。
ボタンが押されたら実行するコードは下記になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Public Class frmBat ''' <summary> ''' ボタンが押されたら ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim testInfo As ProcessStartInfo = New ProcessStartInfo() testInfo.FileName = "C:\test.bat" 'testInfo.CreateNoWindow = True 'testInfo.UseShellExecute = False System.Diagnostics.Process.Start(testInfo) End Sub End Class |
※実行画面を表示したいので、コンソールウィンドウの設定はコメントアウトしています。
実行画面
プログラム起動時
ボタン押下後(test.bat呼び出し時)
ボタンを押すと、バッチファイルを呼び出せることが確認できます。
まとめ
VB.Netから外部ファイルとして、バッチファイルを呼び出す方法を紹介しました。
この方法はバッチファイル以外でも活用できるので、ぜひ使ってみてください。
最後までお読みいただきありがとうございます。
・こちらの書籍を参考にVB.Net勉強しています。