also diese IsMainWindow Funktion funktioniert nur bedingt.
Sehr viele programme zeigen auch gar nicht mehr das Mainwindow als HAuptfenster.
Das HAuptfenster ist irgendwo im Hintergrund.
MAn muss da wohl unterscheiden, ob man wirklich das Mainwindow sucht, oder das sichtbare Fenster von dem Prozess.
Ich benutze jetzt folgende Funktion, um das sichtbare fenster zu bekommen;
Delphi-Quellcode:
function IsValidWindow(wnd : HWND) : boolean;//
begin
result := false;
if wnd <> 0 then begin
result := (GetSystemMenu(Wnd, false) <>0);
end; // wnd <> 0
end; // IsValidWindow
und prüfe noch:
Delphi-Quellcode:
if (ProcessID = EWD.ProcessID) and
IsValidWindow(AHandle) and
IsWindowVisible(AHandle) then begin
end;
Phantasie ist etwas, was sich manche Leute gar nicht vorstellen können.