lynxeyedの電音鍵盤

MBDとFPGAと車載で使うデバイスの備忘録

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

ボタンとテキストボックスはフォームデザインにあらかじめ配置しておきます。
エラー処理は各自で追記してください。

参考図書: