auf Ende von CreateProcess warten, noch ne frage



  • hallo zusammen,

    noch ein kleines prob. meine app startet eine exe), was auch mit dem bisher verwendeten ShellExecute gut funktionierte. Nu stell ich aber fest, dass meine app natürlich net darauf wartet bis die exe wieder beendet ist.

    hab also alles hier durchgearbeitet, aber immer noch ne frage. klar ist wohl, ich muss CreateProcess verwenden. hab dazu auch ein snippet bei b&m gefunden, dass aber auch net wartet bis die exe wieder beendet ist.

    was müsste ich daran noch ändern, damit ich in meiner app wirklich erst weitermachen kann, wenn die exe wieder beendet ist??

    Zur Erklärung: es handelt sich um ein Installationstool, dass zunächst das eigentliche Prog per InstallShield-Setup installieren soll. Danach soll das Programm mit einem weiteren Tool konfiguriert werden können. Danach kann das DB-Server-Setup (MySQL) gestartet werden u.s.w. bis irgendwann alles installiert und konfiguriert ist.<<

    war das zu kompliziert? ich glaub, ich hab verstanden was ich sagen wollte 😃

    gruß
    bernd



  • Hallo

    siehe die WInAPI-Funktion WaitForSingleObjekt. Den dafür notwendigen Prozeß-Handle bekommst du mit ShellExecuteEx.

    bis bald
    akari





  • klasse postings. immer wieder vielen dank akari und christian.



  • so nu hab ich das ganze in meine app integriert und voller vorfreude gestartet. aber das problem is noch vielschichtiger als ich dachte.

    folgendes passiert:

    mit ButtonClick wird das Setup-Programm (mit InstallShield erstellt) gestartet. die app hällt auch an. die routine funktioniert also.

    aber nachdem setup gestartet wurde wird natürlich der windowsinstaller gestartet und setup beendet! und an den hatte ich nicht gedacht. für den hab ich kein handle, also kann ich den auch net abfangen. heißt, sobald das setup wieder beendet ist, läuft meine app weiter. nur dass davor eben der windowsinstaller sein unwesen treibt.

    aber ihr zwei (akari und christian) habt doch bestimmt auch nen lösungsansatz dafür, oder?



  • Versuch doch mit FindWindow das Windows-Installer fenster zu finden.

    Dann überprüfst du einfach, ob das Fenster noch da ist, und wenn nicht:
    -> weiter im Programm



  • nu hab ich den halben tag mit FindWindow experimentiert und bin etwas gefrustet. ich hab absolut keinen schimmer, wie ich das prob sinnvoll angehen kann oder muss.

    ich muss gestehen, dass ich davon viel zu wenig ahnung hab. wär echt klasse, wenn ihr mir da auf die sprünge helfen könntet.



  • wenn ihr mir da auf die sprünge helfen könntet.

    Ähhh, wie???

    http://www.marquardtnet.info/cecke/quickies.1/1_quicky_34.html


Anmelden zum Antworten