Konsolenprogramm starten und Ausgabe einlesen

Antworten
FXMaveric
Beiträge: 19
Registriert: Mi 7. Jan 2009, 08:59

Konsolenprogramm starten und Ausgabe einlesen

Beitrag von FXMaveric »

Hallo,

gibt es eine Möglichkeit, aus einem grafischen Lazarusprogramm ein Konsolenprogramm zu
starten und dessen Ausgabe abzufangen, so das ich diese .z.B. in einer Listbox darstellen kann?

mfg
FXMaveric

KOBOLD Messring GmbH
Beiträge: 155
Registriert: Mi 22. Aug 2007, 14:52
OS, Lazarus, FPC: Mandriva Linux 2008 (L 0.9.28 FPC 2.2.4)
CPU-Target: 32Bit
Wohnort: 65719 Hofheim am Taunus
Kontaktdaten:

Re: Konsolenprogramm starten und Ausgabe einlesen

Beitrag von KOBOLD Messring GmbH »

TProcess heisst das Zauberwort, da gibt's ein Wiki für
http://wiki.lazarus.freepascal.org/Exec ... rograms/de" onclick="window.open(this.href);return false;
und funktioniert.

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Konsolenprogramm starten und Ausgabe einlesen

Beitrag von creed steiger »

Bei Tprocess beachten:
Anmerkung: TProcess ist kein Terminal bzw. keine Shell! Weder können Scripte direkt ausgeführt werden, noch kann die Ausgabe mit Operatoren wie "|", ">", "<", "&" etc. umgeleitet werden
(Lazarus-Wiki)
Die Process-Demo aus dem Lazarus-CCR SVN würde ich besonders ans Herz legen.

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Re: Konsolenprogramm starten und Ausgabe einlesen

Beitrag von mschnell »

creed steiger hat geschrieben:Bei Tprocess beachten: ... Weder können Scripte direkt ausgeführt werden,
Auch in Linux nicht ?
In Linux startet das OS doch ein Script (also ein Textfile, das das executable Flag gesetzt hat) automatisch, indem es das in der ersten Zeile mit #! angegebene Programm mit der Scriptdatei als Parameter startet. Die aufrufende Applikation braucht gar nicht zu wissen, dass das ein Script ist. Auch der Output wird in Linux bei einem Script wie bei einem "echten" Programm nach stdout gelenkt. Da sollte die aufrufende Applikation auch nix von merken. In Linux sind Scripts eigentlich "normale" Programme.
Ich habe in Linux (bash-, perl-, haserl-, ...) Scripts schon als CGI-Programme und als mit xinetd gestartete TCP/IP-Server verwendet.

In Windows geht das, soweit ich weiß, nicht so schön.

-Michael

creed steiger
Beiträge: 958
Registriert: Mo 11. Sep 2006, 22:56

Re: Konsolenprogramm starten und Ausgabe einlesen

Beitrag von creed steiger »

Es ist etwas missverständlich.Man kann Tprocess nicht wie die Shell scripten:
zB.
commandline:='cd /home/user;mplayer test.avi'
wird nicht funktionieren .

Antworten