Forums Neueste Beiträge
 

Befehl als Proess ausführen und mit Programm warten

02/03/2008 - 13:15 von Stefan Theobald | Report spam
Hallo,

ich rufe in meinem Programm FileZilla auf um eine Datei zu übertragen -
funktioniert auch ohne Probleme (sogar mit Authentifizierung an der
Firewall).

Ich hàtte es aber eigentlich gerne so, dass mein Programm mit der weiteren
Ausführung wartet bis der Befehl ausgeführt ist - also FileZilla wieder
beendet ist.

Ich habe es schon als Prozess versucht, aber das geht irgendwie wegen der
übergebenen Parameter wohl nicht.

Wie kann ich das trotzdem realisieren?
Wie sieht die Lösung aus?
Hat einer ein Beispiel?


Gruß
Stefan

Interaction.Shell(TextBox_Weg_zu_FileZilla.Text & " -s " & """" &
TextBox_FTP_Profil_Bilder.Text & """" & " -u " & """" & Dateiname & """" & "
ftp://" & TextBox_FTP_Benutzer_Bilder.Text & ":" &
MaskedTextBox_FTP_Kennwort_Bilder.Text & "@" &
TextBox_FTP_Server_Bilder.Text & "/ -overwrite -close",
AppWinStyle.NormalFocus, True)
 

Lesen sie die antworten

#1 Thorsten Doerfler
02/03/2008 - 14:13 | Warnen spam
Stefan Theobald schrieb:
Ich hàtte es aber eigentlich gerne so, dass mein Programm mit der weiteren
Ausführung wartet bis der Befehl ausgeführt ist - also FileZilla wieder
beendet ist.

Ich habe es schon als Prozess versucht, aber das geht irgendwie wegen der
übergebenen Parameter wohl nicht.



Was funktioniert denn konkret nicht? Es wàre hilfreich, wenn Du uns
dann mitteilst, was Du versucht hast. Dann kann man Dir gezielt sagen,
was Du falsch gemacht hast.

Folgendes sollte funktionieren:

Dim lArgs As String = String.Format( _
"-s ""{0}"" -u ""{1}"" ftp://{2}:{3}@{4}/ -overwrite -close", _
TextBox_FTP_Profil_Bilder.Text, _
Dateiname, _
TextBox_FTP_Benutzer_Bilder.Text, _
MaskedTextBox_FTP_Kennwort_Bilder.Text, _
TextBox_FTP_Server_Bilder.Text)

Dim lFileZilla As Process = _
Process.Start(TextBox_Weg_zu_FileZilla.Text, lArgs)

lFileZilla.WaitForExit

MsgBox("FileZilla hat fertig!")

Dabei wird Deine Anwendung allerdings komplett blockiert. Besser Du
verwendest hier gleich das Exited Ereignis der Process Klasse:

Friend WithEvents FileZilla As Process

[...]
Dim lArgs As String = String.Format( _
"-s ""{0}"" -u ""{1}"" ftp://{2}:{3}@{4}/ -overwrite -close", _
TextBox_FTP_Profil_Bilder.Text, _
Dateiname, _
TextBox_FTP_Benutzer_Bilder.Text, _
MaskedTextBox_FTP_Kennwort_Bilder.Text, _
TextBox_FTP_Server_Bilder.Text)

FileZilla = Process.Start(TextBox_Weg_zu_FileZilla.Text, lArgs)
FileZilla.EnableRaisingEvents = True

Private Sub FileZilla_Exited(ByVal sender As Object, _
ByVal e As System.EventArgs _
) Handles FileZilla.Exited

MsgBox("FileZilla hat fertig!")
End Sub

Thorsten Dörfler
Microsoft MVP Visual Basic

vb-hellfire visual basic faq | vb-hellfire - einfach anders
http://vb-faq.de/ | http://www.vb-hellfire.de/

Ähnliche fragen