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