Iceman346 Geschrieben 23. April 2008 Teilen Geschrieben 23. April 2008 Im Internet findet man zwar Unmengen an Tipps zu älteren VB Versionen, aber bei den .net Teilen ist man eher aufgeschmissen. Folgendes Problem: Ich versuche mir momentan VB beizubringen, da darin viele der hier auf der Arbeit genutzten Programme geschrieben sind. Nun hab ich es mir zur Aufgabe gemacht ein kleines Programm zu schreiben, welches ein externes Konsolenprogramm auf Knopfdruck starten und beenden kann. Dies wirft aber einige seltsame Probleme auf. Mein bisheriger Code sieht so aus: Public Class Form1 Dim gestartet As Boolean = False Dim FTP As Process Dim config As Process Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load TextBox1.Text = "FTP Kopierer gestoppt." TextBox1.BackColor = Color.Red End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If Not gestartet Then FTP = Process.Start("FTP.exe") TextBox1.Text = "FTP Kopierer gestartet." TextBox1.BackColor = Color.Green Button1.Text = "FTP Kopierer stoppen." gestartet = True ElseIf gestartet Then FTP.Kill() TextBox1.Text = "FTP Kopierer gestoppt." TextBox1.BackColor = Color.Red Button1.Text = "FTP Kopierer starten." gestartet = False End If End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If Not gestartet Then config = Process.Start("Config.exe") gestartet = True ElseIf gestartet Then config.Kill() gestartet = False End If End Sub End Class (und ja ich weiß, dass ich die gestartet Variable so nicht weiterbenutzen kann) Der Aufruf und das Beenden der Config.exe funktioniert dabei problemlos, aber die FTP.exe startet er nicht. Stattdessen öffnet er den Firefox mit ftp://ftp.exe/ in der URL Leiste. Kann mir irgendwer sagen wo mein Fehler liegt? Ist es möglich die FTP.exe so zu öffnen, dass das Konsolenfenster nicht sichtbar ist? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 23. April 2008 Teilen Geschrieben 23. April 2008 1. Hat das einen Grund, dass du eine Textbox, statt einem Label nimmst? 2. Liegt die ftp.exe im gleiche Verzeichnis? 3. Was macht die FTP.exe? Das ftp-Protokoll startet eigentlich immer den eingestellten Standardbrowser. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Iceman346 Geschrieben 23. April 2008 Autor Teilen Geschrieben 23. April 2008 1. Hat das einen Grund, dass du eine Textbox, statt einem Label nimmst? Nö, eigentlich nicht. Soll auch keine Eingabe rein oder so, könnts auch alles auf Labels ändern, aber das sollte ja nicht die Quelle des Problemes sein 2. Liegt die ftp.exe im gleiche Verzeichnis? Ja natürlich. 3. Was macht die FTP.exe? Das ftp-Protokoll startet eigentlich immer den eingestellten Standardbrowser. Die verbindet sich mit einem FTP Server, schaut ob da Dateien liegen, kopiert diese runter und wiederholt diesen Vorgang alle X Sekunden. Ist nen C++ Programm welches ich geschrieben habe, dass hier auf der Arbeit momentan als Hilfe läuft. Startet man das Programm von Hand läuft auch alles wie es soll. Edit: Interessanterweise ist Firefox nichtmal der Standardbrowser Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 23. April 2008 Teilen Geschrieben 23. April 2008 Die verbindet sich mit einem FTP Server, schaut ob da Dateien liegen, kopiert diese runter und wiederholt diesen Vorgang alle X Sekunden. Ist nen C++ Programm welches ich geschrieben habe welches hier auf der Arbeit momentan als Hilfe läuft. Startet man das Programm von Hand läuft auch alles wie es soll. Also Startet es normal eine Console? Hast du schonmal den absoluten Pfad angegeben? Bzw. was sagt der FF bei der FTP-URI? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Iceman346 Geschrieben 23. April 2008 Autor Teilen Geschrieben 23. April 2008 Also Startet es normal eine Console? Hast du schonmal den absoluten Pfad angegeben? Bzw. was sagt der FF bei der FTP-URI? Ist ne ganz normale Konsolenanwendung, ja. Mit dem absoluten Pfad startete es, hab nun den Aufruf auf FTP = Process.Start(System.AppDomain.CurrentDomain.BaseDirectory() & "FTP.exe") geändert, damit funktioniert alles wie gewünscht. Wäre noch die Frage, ob es möglich ist das Konsolenfenster der aufgerufenen Anwendung zu verstecken. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 23. April 2008 Teilen Geschrieben 23. April 2008 Wäre noch die Frage, ob es möglich ist das Konsolenfenster der aufgerufenen Anwendung zu verstecken.Wenn du kein Konsolenfenster willst, dann erstell das Programm doch einfach nicht als Konsolenanwendung. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Iceman346 Geschrieben 23. April 2008 Autor Teilen Geschrieben 23. April 2008 Wenn du kein Konsolenfenster willst, dann erstell das Programm doch einfach nicht als Konsolenanwendung. Das Programm existiert halt nu als Konsolenanwendung und ehrlich gesagt hab ich in C++ noch nie was anderes als Konsolenanwendungen erstellt, wüsste also garnicht wie ich anfangen sollte. Hab aber im Internet ne Codezeile gefunden die in C++ das Fenster verstecken soll, werd die dann zur Not noch in das Programm einbauen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 23. April 2008 Teilen Geschrieben 23. April 2008 ftp.StartInfo.CreateNoWindow = True Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Iceman346 Geschrieben 24. April 2008 Autor Teilen Geschrieben 24. April 2008 ftp.StartInfo.CreateNoWindow = True Das tats nicht, mit FTP.StartInfo.WindowStyle = ProcessWindowStyle.Hidden gehts aber. Dann noch eine Frage: Ich habe nun in meinem Programm eine TextBox worin das Log des hinterliegenden FTP Programmes ausgelesen wird. Kann ich dies irgendwie so einstellen, dass er nach jedem Lesevorgang ganz bis zum Ende scrollt? Ich habe schon versucht den Cursor zum Ende zu setzen, aber dadurch scrollt er nicht runter. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TDM Geschrieben 24. April 2008 Teilen Geschrieben 24. April 2008 Wundert mich zwar, dass man in einer Textbox überhaupt scrollt (oder ist es eine RichtextBox/TextArea?!) aber die Funktion ScrollToCaret() sollte helfen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Iceman346 Geschrieben 24. April 2008 Autor Teilen Geschrieben 24. April 2008 Funktioniert, vielen Dank Ich nutz die Textbox im Endeffekt nur um den Inhalt des Logs darzustellen. Soll also auch keine Eingabe drüber kommen oder so. Da man über die Textbox sehr einfach ne Scrolleiste bekommt hab ichs so gebaut. Ist vielleicht nicht ganz so schön, aber funktioniert wie gedacht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.