Visual Basic .NETで簡単なフロントエンドを組む
ハードウェアな組み込みやってると、PC側のアプリケーションプログラムを組むときもC言語が多いです。
自分だけで使うならコマンドラインベースの使いづらいプログラムでも別に困りません。
でも、納品となると、ちょっとはGUIっぽいフロントエンドつけて気を利かせないといけないのでVB .NETを弄って作ってみました。
ボタン(Button1)をクリックされたらTextbox1.Textの内容(=実行ファイル)にTextbox2.Textの内容(=実行ファイルに引数として与えるファイル名)を読み込んでコマンドラインに投げるだけのものです。
こんな感じ。
Imports System.IO.Ports Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim command As String Dim targetfilename As String command = TextBox1.Text() 'コマンドラインはTextBox1.Textの内容を取得 targetfilename = TextBox2.Text() 'ターゲットファイル名はTextBox2.Textの内容を取得 If TextBox1.Text = "" Then MsgBox("コマンドが指定されていません") Return End If If TextBox2.Text = "" Then MsgBox("ターゲットファイルが指定されていません") Return End If Debug.Print(command) Debug.Write("Start") Dim psI As New ProcessStartInfo() psI.FileName = command ' 実行するファイル psI.Arguments = "-hogehoge " + targetfilename '他に引数があれば-hogehogeに書く psI.CreateNoWindow = True ' コンソール・ウィンドウを開かない psI.UseShellExecute = False ' シェル機能を使用しない psI.RedirectStandardOutput = True ' 標準出力をリダイレクト Dim p As Process = Process.Start(psI) ' アプリの実行開始 Dim output As String = p.StandardOutput.ReadToEnd() ' 標準出力の読み取り output = output.Replace(vbCr + vbCrLf, vbLf) ' 改行コードの修正 ' 改行で分割して配列に格納する Dim stArrayData As String() = output.Split(vbLf) ' データを確認する For Each stData As String In stArrayData Debug.Write(stData) 'ウィンドウに出力 Next stData End If End Sub End Class
ボタンとテキストボックスはフォームデザインにあらかじめ配置しておきます。
エラー処理は各自で追記してください。
参考図書: