Also das mit dem ermitteln ist ein klacks.
if GetParent(GetForegroundWindow) = 0 then lHwnd := GetForegroundWindow else lHwnd := GetParent(GetForegroundWindow);
.
Diese Zeile in .dpr gleich hinter begin einfügen.
In der MainForm das hier einfügen
Delphi-Quellcode:
var
FormX: TFormX;
lHwnd: HWND;
...
procedure TFormX.FormActivate(Sender: TObject);
begin
if not Win32Check(SetForegroundWindow(lHwnd)) then
mmo1.Lines.Add('SetForegroundWindow failed');
end;
So funktioniert es genau so wie der TE es wollte.