Named Pipes Konsolenprogramm Output in GUI-App ausgeben

Named Pipes Konsolenprogramm Output in GUI-App ausgeben

Beitragvon Martin V » 30. Jul 2016, 15:28 Named Pipes Konsolenprogramm Output in GUI-App ausgeben

Ich habe es für Windows hinbekommen, dass ich den Output eines Kommandozeilenprogrammes, das ich von meinem Programm aus starte, in ein Textfenster meines Lazarus GUI Programms umleite. Das habe ich wie folgt gemacht:
- CreateNamedPipe
- ConnectNamedPipe
- in eigenem Thread das Programm als Parameter von cmd.exe und mit > dahinter und dem Namen der Pipe ausgeführt (synchron)
- im eigenen Thread 300 ms Sleep, damit der Hauptprozess Zeit hat, den Rest der Pipe auszugeben
- im eigenen Thread dann DisConnectNamedPipe
- im Hauptprozess eine Schleife mit ReadFile, die beendet wird, wenn im anderen Thread DisConnectNamedPipe ausgeführt wird, weil dann ReadFile einen Error bzw. 0 Bytes zurückgibt.

Die Named Pipes scheinen so unterschiedlich zu sein, dass ich keinen platttform-unabhängigen Code gefunden habe, oder habe ich da etwas übersehen? TFileStream habe ich mir angesehen, glaube aber nicht, dass das geht. Es sind aber eh nur wenige OS-spezifische Aufrufe, also müßte ich nur die jeweiligen Unix-ähnlichen Aufrufe kennen.
Martin V
 
Beiträge: 122
Registriert: 30. Jan 2010, 19:35
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon pluto » 30. Jul 2016, 21:52 Re: Named Pipes Konsolenprogramm Output in GUI-App ausgeben

Lies dir doch mal diesen Wiki Eintrag durch:
http://wiki.lazarus.freepascal.org/Exec ... rograms/de

Dort wird auch Erklärt, wie man die Programme Ausgaben umleiten kann.
MFG
Michael Springwald
Aktuelles Projekt: PlutoArduino
pluto
 
Beiträge: 6652
Registriert: 19. Nov 2006, 12:06
Wohnort: Oldenburg/Oldenburg
OS, Lazarus, FPC: Linux Mint 18.3 | 
CPU-Target: AMD
Nach oben

• Themenende •

Zurück zu Linux



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron
porpoises-institution
accuracy-worried