Application aus Taskleiste entfernen
-
Moin zusammen,
Ich habe mal ne Frage:Warum geht dieser Code:
ShowWindow(Application->Handle, SW_HIDE);
Aber nicht dieser:
HWND hwnd; ShowWindow(hwnd, SW_HIDE);
Ich meine das schonmal gefragt zu haben, allerdings finde ich den Post nicht wieder...
J0
-
Hallo AUFWACHEN
gib doch "ShwoWindow" ein Chance und weise "hwnd" einen Wert zu
-
Oh ja klar, ich hatte noch den Code
hwnd = FindWindow(NULL,"118591517");
vergessen... (war ja auch halb 3 :))
Aber das geht aber auch nicht - Das Fenster verschwindet aber nicht aus der Taskleiste, sonder einfach nur so.J0
-
J0 schrieb:
Das Fenster verschwindet aber nicht aus der Taskleiste, sonder einfach nur so.
Das liegt daran, dass die Formulare einer VCL-Anwendung nicht in der TaskBar registriert werden, dort erscheint nur das (ansonsten unsichtbare) Application-Fenster.
-
hallo bin neu hier weil ich genau das wissen will was im thread-titel steht
ich will nämlich ein tray-icon only application programmieren
bc++ hat ja die class TTrayIcon in den Beispiel-Codes. Wie kann ich aber mein Programm aus der Taskleiste entfernen?
-
DEvent schrieb:
hallo bin neu hier weil ich genau das wissen will was im thread-titel steht
Dann lies dir mal das durch, was im Thread steht, inbesondere die Code-Beispiele im ersten Beitrag.
Nicht zu vergessen der entsprechende FAQ-Beitrag unter "Forms".
-
du musst einfach in der WinMain
"WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)"
(um da hinzugelangen gehe im Menü auf Projekt->Quelltext anzeigen)
nach
Application->Initialize();ShowWindow(Application->Handle,SW_HIDE); Application->ShowMainForm = false;
schreiben.
mfg
VergissEs
-
Hi DEvent,
Unter dem Titel steht steht doch wie's geht!
-
ich dacht ...
äh ok
habt ja recht
-
sagmal
ich hab das jetzt soweit das mein proggy trayicon only ist,
aber wenn ich das prog anzeigen will hab ich dann sowas gemacht:void __fastcall TForm1::MIBringOnFrontClick(TObject *Sender) { Visible = true; Enabled = true; ShowWindow(Application->Handle, SW_HIDE); BringToFront(); }
Das ShowWindow(Application->Handle, SW_HIDE); ist das ich auch dann nicht will das das prog in taskleiste angezeigt wird
aber ich hab ein problem das mein TMemo Object nach dem wieder einblenden auf keine ereignisse mehr reagiert ( tastatureingabe oder mausklicks )
das is komisch, weil andere Objecte ( meine TImage-Objecte ) weiterhin auf Mausklicks reagieren. Kann man da abhilfe verschafen?achja und wo kann man darauf reagieren, wenn das proggy wieder im hintergrund verschwindet? also wenn es aktiv ist und man dann auf ein anderes prog klickt, dann verschwindet ja ein trayicon-only proggy wieder,
also wo kann man darauf reagieren?
-
ich hab ein prob mit dem ShowWindow(Application->Handle, SW_HIDE);...
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { /* DWORD dwExStyle = GetWindowLong(Application->Handle, GWL_EXSTYLE); dwExStyle |= WS_EX_TOOLWINDOW; SetWindowLong(Application->Handle, GWL_EXSTYLE, dwExStyle); */ try { Application->Initialize(); ShowWindow(Application->Handle, SW_HIDE);
so sieht bei mir der code aus,funzen tuts leider nicht,also das icon ist immernoch in der taskleiste
-
-
sagtmal gibt es eine möglichkeit das programm auch aus der Alt+Tab Leiste zu entfernen, ohne mein form als tool-fenster zu machen so wie es in
http://www.bcbdev.com/faqs/faq4.htm steht ?
aus der tasks-leiste kein prob aber aus dieser alt+tab