Veröffentlicht 22. Oktober 200915 j Hallo zusammen, ich habe folgendes Problem: Ich starte eine Setup.exe mit ShellExecuteEx() und warte dann mit WaitForSingleObject() auf das Ende: bool exec( DWORD &ExitCode, QString &program, QString &arguments ) { SHELLEXECUTEINFO se; ZeroMemory( &se, sizeof(se) ); se.cbSize = sizeof(se); se.fMask = SEE_MASK_NOCLOSEPROCESS; se.lpVerb = L"open"; QStdWString prog(program.toStdWString()); QStdWString args(arguments.toStdWString()); se.lpFile = prog.c_str(); se.lpParameters = args.c_str(); se.nShow = SW_SHOW; if ( !ShellExecuteEx( &se ) ) return false; while( WaitForSingleObject( se.hProcess, 1000 ) == WAIT_TIMEOUT ) qApp->processEvents(QEventLoop::AllEvents, 100); GetExitCodeProcess( se.hProcess, &ExitCode ); // Close process and thread handles. CloseHandle( se.hProcess ); return true; } Aber die Setup.exe die ich starte, kopiert sich selbst ins %TEMP% und startet sich von da. Sobald die ursprüngliche Instanz beendet wurde, wird die while-Schleife verlassen. Ich müsste aber solange warten, bis auch die zweite aus %temp% gestartete Instanz samt eventuell weiterer Kindprozesse beendet wurde. Hat da jemand vielleicht eine Idee? Danke im Voraus.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.