Hallo zusammen,
in meinem Programm wird auf Knopfdruck ein externes Programm gestartet, was dann wiederum remote ein Script ausführt. Funtioniert auch alles wunderbar, nur dass während der Ausführung des externen Programms mein Programm einfriert, während es auf Feedback des externen wartet um dann dessen Ausgabe in einer Textbox anzuzeigen. Wie kann ich das externe Programm im Hintergrund laufen lassen und am besten noch ein Marquee-ProgressBar einbinden, dass man sieht, dass es noch herumwerkelt? Den Code benutze ich:
[highlight=vbnet]
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim ProcessInfo As New ProcessStartInfo
Dim p As New Process
p.StartInfo.FileName = "psexec"
p.StartInfo.Arguments = "\\10.1.1.1 -u user -p passwort C:\import\import.cmd"
p.StartInfo.UseShellExecute = False
p.StartInfo.CreateNoWindow = True
p.StartInfo.RedirectStandardError = True
Try
Application.DoEvents()
p.Start()
txtOutput.Text = p.StandardError.ReadToEnd()
p.WaitForExit()
p.Close()
Catch ex As Exception
End Try
End Sub
[/highlight]
in meinem Programm wird auf Knopfdruck ein externes Programm gestartet, was dann wiederum remote ein Script ausführt. Funtioniert auch alles wunderbar, nur dass während der Ausführung des externen Programms mein Programm einfriert, während es auf Feedback des externen wartet um dann dessen Ausgabe in einer Textbox anzuzeigen. Wie kann ich das externe Programm im Hintergrund laufen lassen und am besten noch ein Marquee-ProgressBar einbinden, dass man sieht, dass es noch herumwerkelt? Den Code benutze ich:
[highlight=vbnet]
Private Sub btnStart_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnStart.Click
Dim ProcessInfo As New ProcessStartInfo
Dim p As New Process
p.StartInfo.FileName = "psexec"
p.StartInfo.Arguments = "\\10.1.1.1 -u user -p passwort C:\import\import.cmd"
p.StartInfo.UseShellExecute = False
p.StartInfo.CreateNoWindow = True
p.StartInfo.RedirectStandardError = True
Try
Application.DoEvents()
p.Start()
txtOutput.Text = p.StandardError.ReadToEnd()
p.WaitForExit()
p.Close()
Catch ex As Exception
End Try
End Sub
[/highlight]
Comment