Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Konsole auslesen (https://www.delphipraxis.net/19444-konsole-auslesen.html)

Pseudemys Nelsoni 3. Apr 2004 13:13


Konsole auslesen
 
hoi,

ich würde gerne von meinem programm aus den befehl "ping <domain/ip>" an die konsole übergeben und die ergebnisse auslesen. Ist soetwas möglich? Wenn ja, wie?

Luckie 3. Apr 2004 13:14

Re: Konsole auslesen
 
Leite die Ausgabe in eine Textdatei um und lad die in eine Memo.

Pseudemys Nelsoni 3. Apr 2004 13:30

Re: Konsole auslesen
 
Hallo Luckie,

ich weiss nichtmal wie ich über delphi commands in der konsole ausführe, bzw wie ich diese dann auslese.

Ich wollte das ca so:

http://www.angelfire.com/bug/delphi/console.jpg


das grüne sollte das seinwas delphi als command übergibt, und das rote sollte das sein was delphi ausliest (wenn möglich)

Chewie 3. Apr 2004 14:52

Re: Konsole auslesen
 
Code:
ping.exe > c:\pingout.txt
Dann hast du die Ausgabe in der Datei c:\pingout.txt. Von dort kannst du auslesen, was du willst.

p0w3r5tr34m3r 3. Apr 2004 15:48

Re: Konsole auslesen
 
hi,

also ich würde das wie folgt machen:

Delphi-Quellcode:
uses
  {...},ShellApi;

var
 target : string;
begin
 target := edit1.text;
 ShellExecute(handle,'open','cmd.exe',PChar('/C ping '+ip+' > pingout.txt'),nil,nil,SW_HIDE);
 sleep(5000);
 ShellExecute(handle,'open','cmd.exe',PChar('/C FindStr.exe /C:"Minimum" pingout.txt > find.txt'),nil,nil,SW_HIDE);
 sleep(5000);
 Memo1.Lines.LoadFromFile(extractfilepath(application.exename)+'find.txt');
 deletefile(extractfilepath(application.exename)+'find.txt');
 deletefile(extractfilepath(application.exename)+'pingout.txt');
end;
MfG Powerstreamer

Pseudemys Nelsoni 3. Apr 2004 17:35

Re: Konsole auslesen
 
hoi, das funzt schon gut, danke!

Nur das mit dem sleep finde ich doof, kann ich nicht irgendwie prüfen wann der ping befehl zuende ist?

NicoDE 3. Apr 2004 18:09

Re: Konsole auslesen
 
Zitat:

Zitat von Pseudemys Nelsoni
kann ich nicht irgendwie prüfen wann der ping befehl zuende ist?

Benutze CreateProcess und WaitForSingleObject statt ShellExecute (und das Kommando sollte "%ComSpec% /C ping www.delphi-praxis.net" lauten und mit ExpandEnvironmentString expandiert werden (da die Konsole auf Win9x command.com und nicht cmd.exe ist).


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:59 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