![]() |
Memo als aktives CMD- Fenster
Hallo,
möchte ein aktives CMD- Fenster in der Anwendung haben, ist dieses Möglich? Wenn ich zum Beispiel über einen Button einen Ping auslöse, sollen die TTL Zeiten im Memo- Fenster dargestellt werden. Also in Delphi ! |
AW: Memo als aktives CMD- Fenster
Da hätteste nur mal eben rüber zum Delphi-Treff wandern müssen, und schon hätteste dort eine Eins-A-Anleitung für dein Problem gefunden:
![]() Ausgabe der Konsole in meinem Programm anzeigen War übrigens einer der ersten Einträge eines Google-Suchresultats mit den Suchworten ![]() |
AW: Memo als aktives CMD- Fenster
Hallo Perlsau :-)
haben diesen Link vorab schon getestet, bekomme aber im Memo- Fenster nur das END- Ergebnis! Wenn ich im CMD Fenster einen ping auslöse, wird Zeile für Zeile im DOS- Fenster angezeigt! Im Memo nicht, nur das END Ergebnis. |
AW: Memo als aktives CMD- Fenster
Ist dir in dem verlinkten Code etwas aufgefallen, vorallem die Schleife?
Der Code darf nach Programmstart naürlich nicht bis zu dessen Beendigung warten, sondern muß regelmäßig den Inhalt auslesen und in den Memo schreiben. :stupid: Das Auslesen könnte man über Timer machen, oder man muß irgendwie dafür sorgen, daß das Programm (VCL) nicht blockiert. |
AW: Memo als aktives CMD- Fenster
|
AW: Memo als aktives CMD- Fenster
|
AW: Memo als aktives CMD- Fenster
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
![]() Da kriegst du live die Ausgabe. Edit: Wobei ich gerade sehe, die Datei dort ist nicht auf dem neuesten Stand. Nimm lieber die aus dem Anhang. |
AW: Memo als aktives CMD- Fenster
Zitat:
Mavarik |
AW: Memo als aktives CMD- Fenster
Hallo Namenloser,
kannst Du mir vielleicht weiter helfen? Komme mit Deinem Beispiel nicht weiter! Danke :-) ----------------------------------------------------------------------------- Es gibt einige Lösungen dazu im Netz, die meist aber erst das Ergebnis zurückliefern, wenn die Anwendung beendet wurde. Wenn dir das nicht reicht, kannst du meine Klasse aus der Unit im Anhang benutzen. Sie stellt Events bereit, die aufgerufen werden, wenn neue Daten ankommen. Beispiel:
Delphi-Quellcode:
type
TMyForm = class(TForm) ... protected FRedirector: TConsoleRedirector; procedure MyEventHandler(Sender: TObject; const Data: string); end; procedure TMyForm.MyEventHandler(Sender: TObject; const Data: string); begin Memo1.Text := Memo1.Text+Data; end; procedure TMyForm.FormCreate(...); begin FRedirector:= TConsoleRedirector.Create; FRedirector.OnReadOutput := MyEventHandler; end; procedure TMyForm.MyButtonClick(...); begin FRedirector.Start('cmd /K ping google.com'); end; |
AW: Memo als aktives CMD- Fenster
1. Zieh ein Memo und einen Button auf dein Formular.
2. Füge oben in der Unit unter Uses unConsoleRedirector hinzu. 3. Passe den Code wie im Beispiel gezeigt an. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz