Taskleiste erscheint obwohl FullScreen Window
-
Hi,
ich hab da ein Problem. Ich habe ein Programm mit nur einem Fenster. Dieses wird gleich beim Start angezeigt und ist ein FullScreen Window. Das bewerkstellige ich so:SetWindowLong(Handle, GWL_STYLE, WS_POPUP | WS_VISIBLE | WS_MAXIMIZE); SetWindowPos(Handle, HWND_TOPMOST, 0, 0, Screen->Width, Screen->Height, SWP_SHOWWINDOW); InvalidateRect(Handle, NULL, TRUE);
in OnCreate. Screen ist ein VCL-Objekt und Handle das Handle des Fensters. So, das funzt auch alles prima, nur habe ich das Prog jetzt in RunServices in der Registry unter LOCAL_MACHINE|Software|Microsoft|Windows|Current Version eingetragen. Das Prog wird dann auch gleich nach dem Booten geöffnet und das Fenster erscheint. Nur kurz nach dem Erscheinen des Fensters kommt die Taskleiste zum Vorschein, was eigentlich nicht sein sollte. Was kann ich dagegen tun?
-
Das kommt soviel ich weiß daher, das deine Anwendung den Fokus verliert (den holt sich der Desktop). Du könntest versuchen das abzufangen!
-
Oder blende die Taskleiste einfach aus.
Mit FindWindow,ShowWindow und Spy++ sollte das gehen...
-
@Nemesyzz
Hab ich schon probiert, aber das geht nicht, da die Taskleiste noch nicht erstellt wurde, wenn mein Proggi losläuft.@flenders
Werd ich mal versuchen, danke.
-
Jo, das klappt schon besser. Allerdings kommt die Taskleiste noch ganz kurz zum Vorschein. Wenn das passiert, setze ich mein Fenster mit SetForegroundWindow() wieder in den Vordergrund. Ist also schon ganz gut, nur am liebsten würde ich das ganz weghaben...