VB.Netよりコマンドを実行
概要
VB.Netよりコマンドを実行し、結果をTextで返します。
Function Runcmd(strcmd As String) As String
'Processオブジェクト
Dim proc As New System.Diagnostics.Process()
With proc.StartInfo
'ComSpecパスの取得
.FileName = System.Environment.GetEnvironmentVariable("ComSpec")
'出力読取り可能化
.UseShellExecute = False
.RedirectStandardOutput = True
.RedirectStandardInput = False
'コマンドプロンプトのウィンドウ非表示
.CreateNoWindow = True
'コマンド(/c:コマンド実行後、コマンドを実行したcmd.exeを終了)
.Arguments = "/c " & strcmd
End With
'コマンド実行
proc.Start()
'実行結果取得
Dim result As String = proc.StandardOutput.ReadToEnd()
proc.WaitForExit()
proc.Close()Return result
End Function
解説
コマンド(String)を引数としてRuncmdを呼びます。
戻り値としてテキストで結果が返ってきます。
先日、ご紹介したフリーソフト
ServerLogon(ソフトと呼べる程のものではありませんが…)
は、net use~を引数としてRuncmdを呼んでいます。
Runcmd呼び出しサンプル
準備
Button.Button1(Runcmd呼び出し用)
TextBox.TextBox1(結果表示用)
をセットしてください。
TextBox1は、MultilineをTrueにしましょう。
Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
Dim text As String
'コマンド
text = Runcmd("ipconfig /all")
TextBox1.Text = textEnd Sub