Seite 1 von 1

Frage zu den Process Befehlen

Verfasst: 23.06.2006 14:21
von wichtel
Hallo,
ich starte ein Kommandozeilen Programm mit RunProgram.
Normalerweise läuft das durch, schreibt eine Datei, und endet.
Es kann aber auch vorkommen dass es nach etwas fragt.
Die Ausgabe des Programms würed ich gerne mit ReadProgramString oder ReadProgramData lesen.
Das klappt für den Fall dass das Program normal durchläuft.
Wenn es aber auf eine Eingabe wartet kommt in den ReadProgram Befehlen nichts an.
Der DOS Capture Code von Rings konnte das auch nicht.

Gibt es da eine Möglichkeit?
Gruß
Michael

Verfasst: 23.06.2006 15:13
von bobobo
AvailableProgramOutput()

folgendes als 1.exe kompilieren

Code: Alles auswählen

OpenConsole()

PrintN("juhu") ;Ausgabe von juhu

Ergebnis.s=Input() ;Programm wartet auf eine Eingabe

MessageRequester("aufgerufenes Programm hat gelesen",Ergebnis ,0)

CloseConsole()

End
folgendes ausführen( 1.exe muss aber gefunden werden)

Code: Alles auswählen

test=RunProgram ("1.exe","","",#PB_Program_Write|#PB_Program_Read |#PB_Program_Open)
MessageRequester("aufrufendes Programm",Str( IsProgram(test)),0)
MessageRequester("aufrufendes Programm",Str(ProgramRunning(test)),0)

If AvailableProgramOutput(test)

MessageRequester("aufrufendes Programm hat was gelesen",ReadProgramString(test),0)
EndIf

WriteProgramStringN(test,"Nimm das")

If WaitProgram(test , 5000)
  MessageRequester("aufrufendesProgramm","das aufgerufene hat sich beendet",0)
  CloseProgram(test)
  End
EndIf


Verfasst: 23.06.2006 15:18
von wichtel
Danke, dein Beispiel geht.
Aber mein Program trotzdem nicht.
Kann es sein dass das Kommandozeilen Program das ich nutze die Aus/Eingabekanäle nicht richtig benutzt?

Verfasst: 23.06.2006 15:22
von bobobo
Tja, weiß ich nicht. Kenne ja auch das Programm nicht.