@Chris,
vielen Dank für Dein Beispiel, währenddessen habe ich den Holzhammer
ausgepackt und erhöhe mal während der ShellExecuteEx-Phase die Proirität meines Programms:
Delphi-Quellcode:
SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
TRY
IF ShellExecuteEx(@ShExecInfo) THEN
BEGIN
aHandle := ShExecInfo.HProcess;
WaitForSingleObject(ShExecInfo.hProcess, 0);
Application.ProcessMessages;
IF CloseIt = FALSE THEN
BEGIN
CloseHandle(aHandle);
Exit;
END;
END
ELSE
ShowMessage('Fehler beim Öffnen');
Application.ProcessMessages;
FINALLY
SetPriorityClass(GetCurrentProcess, NORMAL_PRIORITY_CLASS);
END;
Es scheint zu funktionieren, allerdings werde ich Dein obiges Beispiel aufnehmen und mal versuchen anzupassen, da Deine Lösung (und Chewies Idee mit den Threads) natürlich viel eleganter ist!