Ganz so klar ist mir das nicht geworden, aber ich würde das Window-
Handle
dieser 2. Anwendung zwischenspeichern und BringToFront()
nur auslösen, wenn diese 2. Anwendung den Focus hat:
Delphi-Quellcode:
Tfrm_main =
class(TForm)
private
FExtWinHandle : THandle;
....
procedure Tfrm_main.Timer1Timer(Sender: TObject);
begin
if GetForeGroundWindow <>
Handle then
begin
if FExtWinHandle = 0
then
begin
FExtWinHandle := GetForeGroundWindow;
end;
if FExtWinHandle = GetForeGroundWindow
then
BringToFront;
end;
end;
procedure Tfrm_main.FormOnActivate(Sender: TObject);
begin
FExtWinHandle := 0;
end;
Damit kann der Benutzer zwischendurch auch eine andere Anwendung (z.B. Explorer)
benützen ohne das deine Anwendung ständig hochpoppt.