Lecture et interprétation des données d'un processus.
Bonjour,
Je suis actuellement en train de coder un logiciel qui me permettra de lancer Bitlocker sur des potes à distance via le réseau.
Pour ce faire je doit simplement lancer un processus cmd.exe et y injecter des commandes dos, c'est assez simple à faire mais là ou cela se complique c'est quand je veut utiliser les données de sortie du processus et les utiliser afin de créer des boucles et autres trucs.
Ce que j'aimerais faire pour l'instant c'est réussir à faire un bout de code qui va lancer une requête ping via mon processus cmd.exe et si le ping réussi lancer une seconde commande, si le ping ne réussi pas je recommence jusqu'à que cela fonctionne.
Le code que j'utilise actuellement pour lancer le processus en tâche de fond est le suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
Public Class Form1
Dim P As New Process
Dim SW As System.IO.StreamWriter
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
P = New Process
AddHandler P.OutputDataReceived, AddressOf DisplayOutput
AddHandler P.ErrorDataReceived, AddressOf DisplayOutput
P.StartInfo.CreateNoWindow() = True
P.StartInfo.UseShellExecute = False
P.StartInfo.RedirectStandardInput = True
P.StartInfo.RedirectStandardOutput = True
P.StartInfo.RedirectStandardError = True
P.StartInfo.StandardOutputEncoding = System.Text.Encoding.GetEncoding(850)
P.StartInfo.FileName = "cmd.exe"
P.StartInfo.WorkingDirectory = "C:\Windows\System32"
P.Start()
P.SynchronizingObject = TextBox1
P.BeginOutputReadLine()
P.BeginErrorReadLine()
SW = P.StandardInput
SW.WriteLine()
End Sub
Private Sub DisplayOutput(ByVal sendingProcess As Object, ByVal output As DataReceivedEventArgs)
TextBox1.AppendText(output.Data() & vbCrLf)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
SW.WriteLine("ping " & TextBox2.Text)
End Sub
End Class |
La TextBox1 est une fenêtre qui m'affiche la fenêtre cmd.exe afin de vérifier les commandes injectées et les erreurs (c'est juste pour les essais, cette fenêtre est menée à disparaître dans le futur)
La TextBox2 est un champ dans lequel j'entre l'adresse IP du poste que je souhaite "pinger/bitlocker".
Merci d'avance pour vos réponses.
Radhek