Bonjour à tous,
J'ai un problème avec la commande proc.Start()
Suite à un click bouton, j'utilise un proc.Start()qui exécute une application. Mon problème vient du fait que tant que l'application ne s'est pas terminée, je ne peux pas traiter la sortie. Par conséquent, si l'application demande un mot de passe, j'ai une fenêtre dos qui reste inerte et à laquelle, je ne peux pas passer quoi que se soit. Comment faire pour interagir avec ce logiciel ?
Voici mon code. Je vérifie si un mot de passe est demandé. Si il l'est, je fait alors apparaitre une fenêtre demandant le mot de passe. Puis je le soumet à la console ... Enfin ca c'est plutôt ce que je voudrais faire :). Tel quel, la fenêtre demandant le mot de passe ne s'affiche qu'une fois le proc fermé. Merci à ceux qui ont pris le temps de lire jusque ici
proc.StartInfo.UseShellExecute = False
proc.StartInfo.RedirectStandardOutput = True
proc.StartInfo.WorkingDirectory = job_folder
proc.StartInfo.FileName = "z:" & abaqus_exec
proc.StartInfo.Arguments = " -j " & (New System.IO.FileInfo(OpenFileDialog1.FileName).Name) & " -cpus " & ComboBox_cores.Text
Output(proc.StartInfo.FileName & " " & proc.StartInfo.Arguments)
proc.Start()
While Not proc.StandardOutput.EndOfStream
out_lines = proc.StandardOutput.ReadLine.ToString
Output(out_lines)
If Not IsNothing(out_lines) Then
If Not InStr(out_lines, "Enter the password for") = 0 Then
MsgBox("xxx")
LoginForm1.Show()
System.Windows.Forms.SendKeys.SendWait(LoginForm1.PasswordTextBox.Text)
wait(2000)
System.Windows.Forms.SendKeys.SendWait("{Enter}")
wait(2000)
System.Windows.Forms.SendKeys.SendWait("y")
wait(2000)
System.Windows.Forms.SendKeys.SendWait("{Enter}")
Output("reset")
End If
End If
End While
proc.WaitForExit()
proc.Close()
TextBox1.Text = ""
End Sub