Programme im Hintergrund haben nicht das Recht sich selbstständig in den Vordergrund zu drängeln.
Das aktive Programm darf aber fremde Programme vorholen und ihnen die Kontrolle übergeben.
https://learn.microsoft.com/en-us/tr...on-not-working
https://stackoverflow.com/questions/...w-to-the-front
...
Wenn dein Programm durch irgendwass kurz den Fokus verliert, dann ist es am Arsch.
z.B. ein Fenster schließen, wo es fehlschlägt einem anderen eigenem Fenster vorübergehend den Fokus zu überlassen und erst dann das Neue öffnen.
passiert z.B. selbst der Delphi-
IDE gern, wenn gewisse Options-/Fehlerdialoge geschlossen werden.
Oder, was ich grade eben als Problemchen hatte.
* ein Vorauswahldialog geht im OnCreate auf
* der wird geschlossen (Klick auf OK-Knopf) und es tritt ein Fehler auf (hier in einem
Query mit defektem
SQL)
* der Fehlerdialog erwischt noch das grade noch aktive Vorauswahl-Fenster und merkt sich dessen
Handle (HWND)
* *
VCL-Dialoge merken sich im ShowModal den Vorherrigen und wollen anschließend den Fokus zurück dahin verschieben
* der Vorgänger ist inzwischen weg, es tritt sowas wie ein Windows.SetFocus(0) auf
* und das Programm wird ganz nach hinten geschoben, hinter alle Fenster anderer Programme