0

Redirection Console to Form

Comment rediriger le résultat d’une commande console sur une form
 Un petit exemple pour vous montrer comment grâce à  System.Management et System.ServiceProcess il est possible de lancer des commandes dans la console windows et de rediriger le résultat sur une form.
Dans cet exemple tout simple nous allons juste envoyer un ping a notre console et récupérer la réponse dans un textbox
l’encodage du résultat n’est pas parfait les accents sont tronqué, mais le principe est la!
System.management : permet d’accéder à tous ce qui est événement de gestion sur le système (périphérique, application..) , il va nous être utile ici pour rechercher dans le syteme windows, l’application Ping.exe

System.ServiceProcess :
 va nous fournir les classes necessaires permettant de controler les applications de services windows, il nous permettra ici d’envoyer les arguments, et commandes nécessaire au processus Ping.exePour mettre en oeuvre l’application : - une simple form : Form1
- une zone de texte en multiligne : Textbox1

 

Ajouter les imports suivant :
Imports System.ServiceProcess
Imports System.Management

 

Creer la fonction suivante : (qui va nous retourner le chemin de ping.exe)

Fonction RetourneChemin

Private Function retournechemin() As String
Dim Sys As New ManagementObjectSearcher("Select * from Win32_OperatingSystem")

' Information contenu dans Win32_OperatingSystem 
'Déclaration de la variable info = ManagementObject 
Dim infor As ManagementObject
Dim chemin As String
For Each infor In Sys.Get()
    chemin = infor("SystemDirectory").ToString() & "\ping.exe"
   If chemin = Not String.Empty Then
       retournechemin = chemin
   End If
Next
End Function

 

Et dans le code de Votre Form (événement Form_Load) Rajouter le code suivant  :
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim chemin As String = retournechemin()

'si On ne trouve pas le fichier ping.exe On sort de la procedure
If chemin = String.Empty Then
   MsgBox("fichier net.exe introuvable", MsgBoxStyle.Critical, "Fichier introuvable")
   Exit Sub
End If

'la commande
Dim startInfo As New ProcessStartInfo(chemin)
startInfo.WindowStyle = ProcessWindowStyle.Hidden
startInfo.CreateNoWindow = False

'les arguments
startInfo.Arguments = "192.168.1.1"

'demmarage
Process.Start(startInfo)

'active la redirection
startInfo.UseShellExecute = False
startInfo.RedirectStandardOutput = True

'lecture de la reception (redirection)
TextBox1.Text = Process.Start(startInfo).StandardOutput.ReadToEnd()

End Sub

You must be logged in to post a comment.