ne das geht leider alles ned so recht
sobald ich SetForegroundWindow() auf meine Form anwende und wieder ein anderes Fenster anklicke müsste ja egl wieder Msg.Active=WA_ACTIVE ausgelöst werden was aber nicht der fall ist.
Aber es wird immer ca. 35 mal ausgelöst wenn ich die Funktion benutze, wie sie dort steht.
Edit:
mit einer Boolean-Abfrage kann ich das mehrfache Aufrufen der Rutine verhindern aber das Fenster ist trotzdem nicht Aktiv dadurch:
Delphi-Quellcode:
var
b:Boolean;
procedure TForm1.InActive(var Msg:TWMActivate);
begin
if not (Msg.Active=WA_ACTIVE) and b then
begin
b:=false;
SetForegroundWindow(application.Handle);
b:=true;
end;
inherited;
end;