Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Kommandozeilen Programm innerhalb von Delphi (https://www.delphipraxis.net/81591-kommandozeilen-programm-innerhalb-von-delphi.html)

lorus 29. Nov 2006 22:37


Kommandozeilen Programm innerhalb von Delphi
 
Ich möchte ein Kommandozeilen Programm, wie z.B. ping innerhalb von einem Delphi-Programm ausführen.
Das ganze soll so ähnlich wie cmd.exe sein.

Also man startet ein Kommando-Zeilen Programm und dieses gibt etwas Zeile für Zeile aus. (Beim Beispiel von ping: Antwort ..., Antwort ..., Antwort ...)
Das Programm aufrufen ist ja nicht das Problem, nur das, was passiert dann 'Live' wie im CMD anzuzeigen wird ist wohl das knifflige.

Eine Mmöglichkeit wäre ja, das was im cmd passiert ist, als log in eine Datei umzuleiten und diese dann auslesen und anzeigen lassen. Aber das ist nicht das, was ich möchte. Es soll ja schon innerhalb von meinem Programm 'live' durchrattern. Eventuell die erzeugte Textdatei in einem kurzen Intervall immer wieder neu einlesen?

Hat jemand noch eine andere und elegantere Idee parat? :)

Grüße,

Lorus

chaosben 30. Nov 2006 05:11

Re: Kommandozeilen Programm innerhalb von Delphi
 
Du könntest die Ausgabe in eine NamedPipe umleiten. Näheres dazu findest du in der MS-SDK Doku.

Und falls du dir die (etwas verzwickte) Arbeit mit dem Pipe-Server nicht machen willst, kannst du auch die Komponente von www.TheUnknownOnes.net nehmen.

Robert Marquardt 30. Nov 2006 05:28

Re: Kommandozeilen Programm innerhalb von Delphi
 
Eine named pipe hat damit nichts zu tun.
Die JCL http://jcl.sf.net bietet dazu etwas an.
Siehe JCL oder JVCL Installer die den Kommandozeilencompiler von Delphi auf diese Weise anzeigen.

Das Problem ist hier auch in mindestens einem Thread breitgetreten worden.

lorus 30. Nov 2006 07:54

Re: Kommandozeilen Programm innerhalb von Delphi
 
Ich hatte ja gehofft, das jemand schonmal soetwas ähnliches vorhatte und erfolgreich umgesetzt hat.

Meine Kenntnisse (über Delphi/Programmierung) sind im Moment einfach viel zu gering um das eigenstängig umzusetzen.

Hier und hier hatte jemand das selbe vor, konnte es aber wohl ebenfalls nicht umsetzen :)


Trotzdem Danke für die Antworten :)

Grüße,

Lorus

SirThornberry 30. Nov 2006 08:12

Re: Kommandozeilen Programm innerhalb von Delphi
 
hallo, ich hab hier mal ein Beispiel vor einiger Zeit gepostet:
http://www.delphipraxis.net/internal...=598121#598121

lorus 30. Nov 2006 08:21

Re: Kommandozeilen Programm innerhalb von Delphi
 
das ist glaub ich genau das was ich suche :)
werde es, wenn ich wieder daheim bin mal testen :)

Danke dir :)

chaosben 30. Nov 2006 09:01

Re: Kommandozeilen Programm innerhalb von Delphi
 
Zitat:

Zitat von Robert Marquardt
Eine named pipe hat damit nichts zu tun.

Und warum nicht?

Robert Marquardt 30. Nov 2006 10:27

Re: Kommandozeilen Programm innerhalb von Delphi
 
Es ist zwar eine Pipe aber keine named pipe sondern die klassische Unix Pipe ohne Namen.
Es koennte ja sonst nicht unter Win9x funktionieren wo es keine named pipes gibt.

lorus 30. Nov 2006 16:32

Re: Kommandozeilen Programm innerhalb von Delphi
 
Das ist genau das, was ich gesucht habe :)
Echt genial und tausend dank dir :)

Noch eine kleine Frage dazu:

Wenn ich

Delphi-Quellcode:
FWriteToStdIn('befehl' + #13#10);
aufrufe, dann führt er den befehl ja aus und wartet bis das programm fertig ist. Was gibt die Funktion zurück wenn das Programm fertig ist? Das frage ich weil ich eventuell einen Timeout einbauen will, wenn das gestartet programm zu lange brauch um fertig zu werden.


Grüße,

Lorus

SirThornberry 30. Nov 2006 16:50

Re: Kommandozeilen Programm innerhalb von Delphi
 
WriteToStdIn sollte eigentlich nicht warten sondern schreibt einfach in die Pipe was rein (kenn den Quelltext allerdings nicht auswendig und schließe anhand des Funktionsnamen darauf)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Seite 1 von 2  1 2      

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-2025 by Thomas Breitkreuz