Ansonsten kannst du dir das Vordergrundfenster holen (GetForegroundWindow), die Eingabequeues verbinden (GetWindowThreadProcessId, AttachThreadInput) und mittels (Windows.)SetFocus dein Programm aktivieren.
Delphi-Quellcode:
function BringToFrontEx(AWnd: HWND): Boolean;
var
FgWindow: HWND;
ThreadId: DWORD;
Attached: BOOL;
begin
FgWindow := GetForegroundWindow();
ThreadId := GetWindowThreadProcessId(FgWindow, nil);
Attached := AttachThreadInput(GetCurrentThreadId(), ThreadId, True);
if Attached or (ThreadId = GetCurrentThreadId()) then
Result := SetFocus(AWnd) <> 0
else
Result := SetForegroundWindow(AWnd);
if Attached then
AttachThreadInput(GetCurrentThreadId(), ThreadId, False);
end;
Wenn dein Programm sich ohne Grund den Fokus holt, wird der Benutzer es schnell hassen lernen...