Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Automatisch wieder als aktives Programm in den Vordergrund (https://www.delphipraxis.net/67311-automatisch-wieder-als-aktives-programm-den-vordergrund.html)

Stefan H. 12. Apr 2006 22:12


Automatisch wieder als aktives Programm in den Vordergrund
 
Hallo Leute,

ich habe ein kleines Problem und hoffe, Ihr könnt mir da weiterhelfen.

Ich habe ein kleines Programm geschrieben, welches als aktive Anwendung ständig im Vordergrund zu sehen ist. (FormStyle=fsStayOnTop) Soweit so gut.

Nur wenn jetzt jemand in der Taskleiste eine Anwendung anklickt oder auf den Fenster-Rahmen einer anderen Anwendung klickt, so ist mein Programm zwar noch im Vordergrund zu sehen aber es verliert den Fokus und ist somit nicht mehr das aktive Fenster. Soweit ist dies auch noch gewollt.

Nun möchte ich, dass in meinem Programm eine Timer läuft, der mein Programm automatisch nach ca. einer Minute wieder als aktive Anwendung aktiviert (...im Vordergrund ist mein Prog. ja immer noch) und zugleich den Fokus auf ein Textfeld setzt damit man sofort wieder etwas eingeben kann.

Leider funktioniert dies bei mir nicht!

Wenn ich folgendes in meine Timer-Procedure schreibe, dann blinkt zwar in der Taskleiste meine Programm und der Curser blinkt auch in dem richtigen Textfeld aber es ist nicht die aktive Anwendung.

Delphi-Quellcode:
procedure TFormProg.TimerFrontTimer(Sender: TObject);
begin
  SetForegroundWindow(Application.Handle);
  EditProgramm.SetFocus;
end;
Habe auch schon ShowWindow(...) und EnableWindow(...) ausprobiert, aber auch hier ohne Erfolg.

So, ich hoffe Ihr -die Delphi-Spezialisten- könnt mir da weiterhelfen.

Danke!
Gruß Stefan

DGL-luke 12. Apr 2006 22:18

Re: Automatisch wieder als aktives Programm in den Vordergru
 
Das lässt sich in Windows einstellen, ob ein Programm, dass nach dem Fokus verlangt, blinken soll oder gleich in den Vordergrund kommen. Es gibt afaik keine abolut zuverlässige Möglichkeit, das eigene Programm aktiv zu bekommen.

Stefan H. 12. Apr 2006 22:27

Re: Automatisch wieder als aktives Programm in den Vordergru
 
Hallo DGL-luke,

danke für die schnelle Antwort!

Und wo kann man dies in Windows einstellen?
Ich hoffe doch noch auf den richtigen Befehl oder Windows-Funktion die mir meine Anwendung aktiviert.

Gruß Stefan

DGL-luke 12. Apr 2006 22:54

Re: Automatisch wieder als aktives Programm in den Vordergru
 
Keine Ahnung wo das geht... ich hab den dialog praktisch noch im kopf... man kann sogar einstellen, wie oft das in der taskleiste blinken soll ^^

Ich such mal.

Luckie 12. Apr 2006 23:08

Re: Automatisch wieder als aktives Programm in den Vordergru
 
Das gibt es bei den Tuneup Utilities zum beispiel. Aber generell macht es Windows XP es einem Programm sehr viel schwerer sich in den Vordergund zu drängen, weil es einfach den Benutzer stört. Stell dir vor du tipps einen Text und ständig popt ein fenster in den Vordergrund, weil dr Programmierer meint sein Fenster wäre jetzt am wichtigsten.

DGL-luke 13. Apr 2006 00:55

Re: Automatisch wieder als aktives Programm in den Vordergru
 
ja, die müssen es gewesen sein.

Aber das geht doch sicher auch per Systemsteuerung? Oder nur per Registry?


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz