StdoutRead Fehler

  • Hi, ich habe folgendes Problem:
    wenn ich den Code starte führt er das Programm aus, wartet bis es beendet ist und gibt mir dann die ersten 8 Zeilen des Streams aus aber eben nicht die folgenden die vom Programm erzeugt werden.
    Ich tippe mal das die Texte nicht in das Array geladen werden weil ein anderes Handle benötigt wird.
    Blöderweise habe ich bereits alle in der Hilfe angegebenen ausprobiert und hatte keinen erfolg.

    C
    #include <Constants.au3> 
    #include <MsgBoxConstants.au3> 
    #include <Array.au3>
    	Local $iPID = Run(@ComSpec & " /c " & @ScriptDir & '\programm.exe', "", @SW_SHOW,$STDOUT_CHILD) 
    	ProcessWaitClose($iPID)
    	Local $sOutput = StdoutRead($iPID,1)
    	Local $aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@CRLF)), @CRLF)
    	_ArrayDisplay($aArray)
  • Hi,
    StdoutRead funktioniert entgegen deiner Threadüberschrift einwandfrei!
    Auch dein Script funktioniert mit einigen von mir ausprobierten "Programmen" fehlerlos!

    Spoiler anzeigen
    [autoit]

    #include <Constants.au3>
    ;~ #include <MsgBoxConstants.au3>
    #include <Array.au3>
    Local $iPID = Run(@ComSpec & " /c sc query", "", @SW_SHOW, $STDOUT_CHILD)
    ProcessWaitClose($iPID)
    Local $sOutput = StdoutRead($iPID, 1)
    Local $aArray = StringSplit(StringTrimRight(StringStripCR($sOutput), StringLen(@CRLF)), @CRLF)
    _ArrayDisplay($aArray)

    [/autoit]


    Zitat

    und gibt mir dann die ersten 8 Zeilen des Streams aus aber eben nicht die folgenden die vom Programm erzeugt werden.

    welche Zeilen werden ausgegeben, welche nicht?
    Du hast weder gepostet, was du in deiner "Programm.exe" versteckst, noch welche Ausgaben von diesem Programm getätigt werden.
    Ich gehe also davon aus, dass wieder einmal halbseidene Software verwendet oder erstellt werden soll.

    Da bleibt wieder mal nur, einen Modcall bzgl. Threadclose abzusetzen wegen
    - unqualifizierter, weil nicht zutreffender Überschrift
    - absichtlichen Vorenthaltens explitit nötiger Informationen, welche zur Lösung des Problems unumgänglich sind
    - hoffentlich eintretendem Lerneffekt

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    Einmal editiert, zuletzt von Andy (27. April 2014 um 12:36)