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 …
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
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
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.