.NETアプリケーションから文字列の戻り値を返す
2012/07/12
文書番号:20181
.NETアプリケーションから戻り値を返す方法ではアプリケーションの戻り値を返す方法を書きましたが、ExitCodeはInteger型なので文字列を返すことはできません。
厳密には「戻り値」ではありませんが、実行したexeから文字列を返す方法について。
【設定手順】
-
手順としては ”コンソールアプリケーションの出力を取得” します。
- コンソールアプリケーションを作成します。
Mainメソッド内の任意の位置で以下のように書きます。
Sub Main() Console.WriteLine("1F5A00") Console.WriteLine("あいうえお") End Sub
クリックで拡大
コンパイルしたものをコマンドプロンプトから実行してみます。
実行するとプログラムで書いた文字列が出力されることがわかります。
クリックで拡大
- 次にコンソールアプリケーションの出力を別の.NETアプリケーションから取得します。
新規でWindows フォーム アプリケーションを作成し、以下のように書きます。
Dim psi As New ProcessStartInfo() '実行するファイルを指定する psi.FileName = "C:\temp\ConsoleApplication1.exe" 'コンソールウィンドウを開かない 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) 'メッセージボックスに出力 MessageBox.Show(output) 'Processを破棄 p.Close() p.Dispose()
クリックで拡大