AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Memo als aktives CMD- Fenster

Ein Thema von strom · begonnen am 27. Dez 2014 · letzter Beitrag vom 3. Jan 2015
Antwort Antwort
Seite 1 von 2  1 2   
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#1

Memo als aktives CMD- Fenster

  Alt 27. Dez 2014, 13:25
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 !
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

AW: Memo als aktives CMD- Fenster

  Alt 27. Dez 2014, 13:37
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 Delphi+Konsolenausgabe
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#3

AW: Memo als aktives CMD- Fenster

  Alt 27. Dez 2014, 13:54
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.105 Beiträge
 
Delphi 12 Athens
 
#4

AW: Memo als aktives CMD- Fenster

  Alt 27. Dez 2014, 17:34
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.
Das Auslesen könnte man über Timer machen, oder man muß irgendwie dafür sorgen, daß das Programm (VCL) nicht blockiert.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (27. Dez 2014 um 17:36 Uhr)
  Mit Zitat antworten Zitat
alda

Registriert seit: 24. Mär 2014
Ort: Karlsruhe
93 Beiträge
 
Delphi XE6 Architect
 
#5

AW: Memo als aktives CMD- Fenster

  Alt 27. Dez 2014, 23:02
Ich benutze die Lib hier: Klick mich
Verwendete Methode: DSiExecuteAndCapture
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#6

AW: Memo als aktives CMD- Fenster

  Alt 29. Dez 2014, 00:12
http://www.delphipraxis.net/183289-v...ml#post1284872
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#7

AW: Memo als aktives CMD- Fenster

  Alt 29. Dez 2014, 10:07
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.
Du kannst diese Unit von mir verwenden: http://www.delphipraxis.net/1039634-post2.html
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.
Angehängte Dateien
Dateityp: pas unConsoleRedirector.pas (13,3 KB, 64x aufgerufen)

Geändert von Namenloser (29. Dez 2014 um 10:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.126 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: Memo als aktives CMD- Fenster

  Alt 29. Dez 2014, 11:33
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 !
Warum den Umweg über den CMD?

Mavarik
  Mit Zitat antworten Zitat
strom

Registriert seit: 23. Aug 2008
Ort: Keine Ergebnisse gefunden
290 Beiträge
 
#9

AW: Memo als aktives CMD- Fenster

  Alt 1. Jan 2015, 19:22
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;
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Memo als aktives CMD- Fenster

  Alt 1. Jan 2015, 21:56
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.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz