Werde ich in Zukunft gerne machen, allerdings kann ich es, wie gesagt, momentan leider nicht anwenden ^^.
Wieso nicht? Was ist so schwer daran eine Zeile auszutauschen? Damit würde schon mal das zu aktualisierende programm angepasst.
Z.B. wenn ich ein sleep() in den Updater einbaue - egal wie lang - wird das Hauptprogramm nie beendet werden bis eine
Exception kommt.
Falls WinExec intern CreateProcess aufruft könnte ich mir schon sowas wie "race conditions" vorstellen. Keine Rückmeldung im aufgerufenen Programm - WinExec kehrt nicht zurück.
Probier mal was passiert wenn du eine weitere Exe startest welche das Update durchführt und die erste aufgerufene Exe beendest.
Windows Vista - Eine neue Erfahrung in Fehlern.