AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TProcess Output unvollständig

Ein Thema von Der Busch · begonnen am 31. Okt 2011 · letzter Beitrag vom 1. Nov 2011
Antwort Antwort
Der Busch

Registriert seit: 31. Okt 2011
4 Beiträge
 
#1

TProcess Output unvollständig

  Alt 31. Okt 2011, 18:54
Hallo allerseits!

Ich möchte mit einem TProcess (Lazarus) die Ausgabe aus einem Konsolenfenster auslesen.
Das funktioniert auch, aber irgendwie kommt nicht immer alles an.
Ich Starte das auslesen mit einem Timer alle 100ms. Ich speichere den Kram aus dem OutputStream in einer TStringList.
Ich habe allerdings destgestellt, dass wenn ich das auslesende programm wild minimiere, maximiere und hineinklicke, kommt oft auch der Rest.
Könnte es vielleicht am Focus des Programms liegen? Während der andere Prozess läuft, ist es Wie eingefroren.

Wäre schön, wenn da jemand etwas weiß.

EDIT:

Ich weiß, dass es daran liegt, dass der Prozess ein neues Fenster öffnet. So werden anscheinen die Infos aus dem Fenster und nicht aus der Konsole gelesen.

Geändert von Der Busch (31. Okt 2011 um 20:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#2

AW: TProcess Output unvollständig

  Alt 1. Nov 2011, 12:53
Ich weiß jetzt nich, ob ich aus deiner Erläuterung schlau werde, aber bezüglich TProcess folgende Erklärung:

Die Pipes, welche für StdOut, StdIn und StdErr verwendet werden haben eine beschränkte Puffergröße. Das heißt, wenn du einen Prozess mit der Option poUsePipes startest, dann musst du aus OutputStream und ErrorStream auslesen, da sonst der gestartete Prozess nicht mehr reinschreiben kann, wenn der Puffer voll ist. Ist der Puffer voll, dann bleibt der Prozess hängen und wartet bis wieder Platz ist (dieser Teil wird vom Betriebssystem übernommen).

In wie weit das auf deine Situation zutrifft kann ich gerade nicht beurteilen.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Der Busch

Registriert seit: 31. Okt 2011
4 Beiträge
 
#3

AW: TProcess Output unvollständig

  Alt 1. Nov 2011, 14:51
Mein Problem ist einfach, dass Ich den Output eines Programmes nicht richtig lesen kann.
Ich habe festgestellt, dass es funktioniert, wenn ich mir von dem Programm nur die hilfe anzeigen lasse, also kein fenster geöffnet
Wird. Sobalst es Aber ein Fenster öffnet, kann ich die zugehörige konsole nicht mehr richtig auslesen. Das auszuführende programm bleibt auch nicht hängen (eher mein eigenes, aber poWaitOnExit ist draußen!).
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: TProcess Output unvollständig

  Alt 1. Nov 2011, 15:27
ich verwende kein Lazarus, auf dieser Seite
http://wiki.lazarus.freepascal.org/E...al_Programs/de
wird IMHO eine Lösung für Dein Problem beschrieben....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Der Busch

Registriert seit: 31. Okt 2011
4 Beiträge
 
#5

AW: TProcess Output unvollständig

  Alt 1. Nov 2011, 15:42
Diese Seite kenne ich schon. Ich habe aber festgestellt, nachdem die konsole vollgelaufen ist, geht es!
Ich habe die vermutung, dass das programm das prüft und dann einen flush macht. Weiß jemand, wie man ein vollleufen der Pipe
künstlich hervorrufen kann?
  Mit Zitat antworten Zitat
creed steiger

Registriert seit: 2. Dez 2009
116 Beiträge
 
#6

AW: TProcess Output unvollständig

  Alt 1. Nov 2011, 19:23
Gib mal ein bissl Beispielcode was du da so machst,so wird doch kein Mensch schlau draus.
  Mit Zitat antworten Zitat
Der Busch

Registriert seit: 31. Okt 2011
4 Beiträge
 
#7

AW: TProcess Output unvollständig

  Alt 1. Nov 2011, 21:32
ich benutze den selben code wie hier:

http://wiki.lazarus.freepascal.org/E...al_Programs/de

Und er funktionirt auch wie er soll, zumnindest für normale Anwendungen. Sobald der Auszulesende prozess aber ein neues fenster öffnet is ende im gelände.
  Mit Zitat antworten Zitat
Antwort Antwort


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 19:11 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