02/10/2018, 00:53

Hướng dẫn lập trình xuất dữ liệu từ câu lệnh command prompt vb.net

Hôm nay, mình tiếp tục hướng dẫn các bạn cách lấy dữ liệu từ câu lệnh ms-dos trong VB.NET Ví dụ: trong nhiều trường hợp bạn muốn viết một ứng dụng ping đơn giản, để kiểm tra kết nối internet, bạn có thể thực hiện theo bài viết mình hướng dẫn bên dưới ...

Hôm nay, mình tiếp tục hướng dẫn các bạn cách lấy dữ liệu từ câu lệnh ms-dos trong VB.NET

Ví dụ: trong nhiều trường hợp bạn muốn viết một ứng dụng ping đơn giản, để kiểm tra kết nối internet, bạn có thể thực hiện theo bài viết mình hướng dẫn bên dưới để lấy kết quả.

Hoặc các bạn muốn lấy serial number của ổ cứng, từ câu lệnh MS-DOS. Bạn cũng có thể lấy và xuất dễ dàng.

Giao diện Demo ứng dụng:

demo output command promp vb.net

Bài viết demo ở trên:

Các sử dụng 3 công cụ:

- Một textbox để nhập câu lệnh ms-dos

- Một Richtextbox để hiển thị kết quả

Và một button để thực hiện câu lệnh.

Source code ứng dụng:

Imports System.IO

Public Class Form1
    Private psi As ProcessStartInfo
    Private cmd As Process
    Private Delegate Sub InvokeWithString(ByVal text As String)
    Public Sub runCMD()
        Try
            cmd.Kill()
        Catch ex As Exception
        End Try
        rtbResult.Clear()
        If txtCmd.Text.Contains(" ") Then
            psi = New ProcessStartInfo(txtCmd.Text.Split(" ")(0), txtCmd.Text.Split(" ")(1))
        Else
            psi = New ProcessStartInfo(txtCmd.Text$)
        End If
        Dim systemencoding As System.Text.Encoding
        System.Text.Encoding.GetEncoding(Globalization.CultureInfo.CurrentUICulture.TextInfo.OEMCodePage)
        With psi
            .UseShellExecute = False
            .RedirectStandardError = True
            .RedirectStandardOutput = True
            .RedirectStandardInput = True
            .CreateNoWindow = True
            .StandardOutputEncoding = systemencoding
            .StandardErrorEncoding = systemencoding
        End With
        cmd = New Process With {.StartInfo = psi, .EnableRaisingEvents = True}
        AddHandler cmd.ErrorDataReceived, AddressOf Async_Data_Received
        AddHandler cmd.OutputDataReceived, AddressOf Async_Data_Received
        cmd.Start()
        cmd.BeginOutputReadLine()
        cmd.BeginErrorReadLine()

    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnRun.Click
        runCMD()
    End Sub
    Private Sub Async_Data_Received(ByVal sender As Object, ByVal e As DataReceivedEventArgs)
        Me.Invoke(New InvokeWithString(AddressOf Sync_Output), e.Data)
    End Sub
    Private Sub Sync_Output(ByVal text As String)
        rtbResult.AppendText(text & Environment.NewLine)
        rtbResult.ScrollToCaret()
    End Sub

End Class

CHÚC CÁC BẠN THÀNH CÔNG!

DOWNLOAD SOURCE CODE

Tags: cmdexport data
0