Programme nacheinander öffnen



  • Hi

    Ich möchte eigentlich etwas ganz simples. Ein externes Programm starten (aus nem MFC-Dialog), warten bis es geschlossen ist, dann erst das nächste Programm starten, warten bis geschlossen,.....

    Mein Problem ist, wenn das Programm ohne Fenster geöffnet ist, wie kann ich das überwachen?

    geöffnet habe ich die Programme bisher:

    ShellExecute(HWND,"open","name.exe","/quiet",NULL,SW_SHOW);
    

    bei Fenstern mache ich die Überwachung so:

    while(FindWindow(NULL,"Fenstername")) { 	Sleep(1000); }
    

    Aber wie mache ich das, wenn es kein Fenster gibt?



  • Müsste mit ShellExecuteEx und WaitForSingleObject funktionieren.



  • Hallo,

    ist zwar WINAPI und kein MFC aber so funktioniert's auch...

    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 = TRUE;
    si.dwFlags = STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW; 
    si.wShowWindow = SW_HIDE;
    
    ::CreateProcess(szApplication,szCmdLine,&saProcess,NULL,TRUE,0,NULL,NULL,&si,&piProcess);
    
    ::WaitForSingleObject(piProcess.hProcess,INFINITE);
    


  • Danke, die Antworten sind schon das richtige, doch wenn ich das Programm so überwache, dann kann ich in meinem eigenen nichts mehr machen, bis das andere beendet wird. 😕


Anmelden zum Antworten