wie herausbekommen, dass ein childprocess auf eine eingabe wartet??(cmd ist childprocess)



  • hi

    also ich starte die cmd und lese ihren output in einem thread aus, dieser kann verlasse werden, wenn die cmd auf eine eingabe wartet ...
    aber wie bekomme ich das raus???

    danke + cu

    error



  • Drück Dich mal deutlicher aus: cmds gibt es viele (szCmdLine, iCmdShow).
    Was willst Du rausbekommen?

    Allgemein würde ich behaupten: Ein Process wartet nicht auf eine Eingabe, sondern bekommt eine Nachricht von Windows (z. B. WM_COMMAND/ WM_KEYDOWN/ WM_BUTTONUP).
    Die wird dann in der Callback in deiner switch-case-Anweisung entsprechend bearbeitet.



  • error meint wohl das Programm cmd.exe ⚠ zu dem ich leider auch nicht helfen kann 😕 .



  • also ich starte mit createporcess einen neuen process (cmd.exe)

    dann hab ich eine pipe, die mir die ausgabe der cmd an mein programm umleitet(und eingabe entsprechend andersrum)

    jetzt wartet die cmd ja nach zb. einem "dir", welches es angezeigt hat, auf eine weitere eingabe seitens des nutzers

    und das würde ich gerne rausbekommen, also ob er gerade wartet ...

    danke + cu

    error



  • Wenn cmd.exe auf eine Eingabe wartet, wird doch der Prompt angezeigt. Kannst du nicht die Ausgabe parsen und sehen, ob etwas wie "c:\verzeichnis>" kommt?

    Tip: Mit der Environment-Variablen PROMPT kann man festlegen, was als Prompt angezeigt wird. Tippe mal "help PROMPT" in einer Shell ein, dann siehst du die Möglichkeiten. Indem man mit "set PROMPT=<irgendwas>" den Prompt verändert, kann man auch dafür sorgen, dass das Aussehen nicht vom Pfad abhängt. Das ist dann leichter zu identifizieren. Zum Beispiel führt "set prompt=$$$$" dazu, dass als Prompt immer genau zwei Dollarzeichen angezeigt werden.

    Ich hoffe, das hilft.

    Stefan.



  • danke

    die idee hat ich auch schon( und fand sie echt hesslich;-)

    dachte aber: es muss doch auch eine andere möglichkeit geben

    was mir noch einfallen würde(quasi andersrum rangehen):

    sendet ein child process eine windowsnachricht an mein programm, wenn es was schreibt??, so dass ich dies abfangen könnte?? ... dann könnte der thread auch wieder verschwinden ...

    also child sendet und ich kann dann aus der pipe lesen ...

    danke + cu


Anmelden zum Antworten