mehrere exe nacheinander starten



  • Hallo Leute,

    vielleicht kann jemand helfen. Ich möchte mehrere exe nacheinander starten lassen. (Hintergrund: Abarbeitung von mehreren Installationen in einem Rutsch).
    Wie stelle ich das am einfachsten an? Die Lösung sollte auf allen Windows-BS laufen.

    dixi



  • ShellExecute(NULL, NULL, "Programm1.exe", NULL, NULL, SW_SHOWNORMAL);
    ShellExecute(NULL, NULL, "Programm2.exe", NULL, NULL, SW_SHOWNORMAL);
    ShellExecute(NULL, NULL, "Programm3.exe", NULL, NULL, SW_SHOWNORMAL);
    ...
    


  • Die Lösung ist zwar einfach aber nicht das was ich wollte. Die Programme sollen nacheinander gestartet werden. Also nachdem Programm1 gestratet wurde, muß Programm2 warten bis Programm1 fertig ist und darf dann erst starten. Denn Installationsprogramme müssen ja immer nacheinander ablaufen.

    dixi



  • STARTUPINFO si;
    SECURITY_ATTRIBUTES saProcess;
    PROCESS_INFORMATION piProcess;
    
    ZeroMemory(&si, sizeof(si));
    si.cb = sizeof(si);
    
    saProcess.nLength = sizeof(saProcess);
    saProcess.lpSecurityDescriptor = NULL;
    saProcess.bInheritHandle = FALSE;
    
    // Erstes Programm starten...
    CreateProcess ("Programm1.exe",NULL,&saProcess,NULL,FALSE,0,NULL,NULL,&si,&piProcess);
    // Warten bis erstes Programm beendet...
    WaitForSingleObject(piProcess.hProcess,INFINITE);
    // Zweites Programm starten...
    CreateProcess ("Programm2.exe",NULL,&saProcess,NULL,FALSE,0,NULL,NULL,&si,&piProcess);
    // Warten bis zweites Programm beendet...
    WaitForSingleObject(piProcess.hProcess,INFINITE);
    // Drittes Programm starten...
    CreateProcess ("Programm2.exe",NULL,&saProcess,NULL,FALSE,0,NULL,NULL,&si,&piProcess);
    // Warten bis drittes Programm beendet...
    WaitForSingleObject(piProcess.hProcess,INFINITE);
    // usw.
    

    Ich hab das zwar nicht getestet, aber so in etwa müsste es funktionieren.

    Peter



  • jo,

    oder schau hier nach:

    http://www.bytesandmore.de/rad/cpp/snipp/sc03025.php

    musste dann halt noch ein bissl umändern, aber das wird schon klappen 🙂

    Tim



  • Hallo Leute,

    erstmal Danke für die grundlegenden Tips. Für einfache Programme klappt das auch ganz gut. Doch Installationsprogramme (besonders von InstallShield) haben die Eigenschaft, daß der Setup-Aufruf nur einer von mehreren Prozessen ist. Immer wenn InstallShield meldet, daß die Vorbereitungen beendet sind und die eigentliche Installation starten soll, beginnt schon das nächste Programm zu starten.
    Da ich aber auch weiß welche Prozesse weiterhin gestartet werden kann ich auch nichts mit Multiple anfangen. Ich such nun nach einer Abfrage, die erkennt, wann das Programm setup.exe beendet ist.
    Hat jeman eine Idee?

    dixi


Anmelden zum Antworten