Erlärst du uns mal bitte, wieso CloseHandle das Problem gelöst hat?
Da du WinExec benutzt hast, könnte dies hier das Problem sein.
Zitat:
The WinExec function returns when the started process calls the GetMessage function or a time-out limit is reached. To avoid waiting for the time out delay, call the GetMessage function as soon as possible in any process started by a call to WinExec.
Wenn aber dein Ziel ist, daß (unter der Voraussetzung, daß nur dein Programm dieses andere Programm startet) dieses andere Programm nur einmal läuft, ist der obige Code IMO nicht sehr sinnvoll (abgesehen von WinExec). Denn dann solltest du warten, bis der Prozeß beendet wird und dann den
Mutex killen ...
Irgendwie ist mir zu hoch, was du vorhast