![]() |
TaskIcon wird unter Vista nicht gelöscht.
Hallo,
mit folgendem Code generiere und entferne ich in der Taskbar ein Icon:
Delphi-Quellcode:
Problem:
procedure TaskBarAddIcon(Hnd: HWnd; CallbackMsg: UINT; Icon: TIcon; Cap: string);
var NIData: TNotifyIconData; begin Fillchar(NIData,Sizeof(NIData),0); NIData.cbSize := Sizeof(NIData); NIData.Wnd := Hnd; NIData.uID := 1; NIData.uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP; NIData.uCallbackMessage := CallbackMsg; NIData.hIcon := Icon.Handle; strcopy(NIData.szTip, PChar(Cap)); Shell_NotifyIcon(NIM_ADD, @NIData); end; procedure TaskBarFreeIcon(Hnd: HWnd); var NIData: TNotifyIconData; begin FillChar(NIData,Sizeof(NIData),0); NIData.cbSize := Sizeof(NotifyIconData); NIData.Wnd := Hnd; NIData.uID := 1; Shell_NotifyIcon(NIM_DELETE, @NIData); end; Nach der Freigabe wird das Icon in der Taskbar nicht gelöscht. Es verschwindet erst wenn ich mit der Maus darüber fahre. Unter XP kannte ich dieses Verhalten nicht. Liegt es am Vista? Wie kann ich Vista dazu bringen die Icon zu aktualisieren? Gruß Klaus |
Re: TaskIcon wird unter Vista nicht gelöscht.
Stimmt das Handle? Was sagt GetLastError?
|
Re: TaskIcon wird unter Vista nicht gelöscht.
Das ist kein Fehler im eigentlichen Sinn.
Dieses Verhalten kenne ich seit Windows98 auf allen Win-Systemen. Der Bereich wurde nur noch nicht neu gezeichnet mehr nicht. |
Re: TaskIcon wird unter Vista nicht gelöscht.
Also ich kenne das Verhalten nur, wenn man einen Prozess mit einem Icon in der TNA abschiesst und er so keine Möglichkeit mehr hat das Icon zu entfernen. Ansonsten löschen alle meine Programme ihr Icon sauber aus der TNA, wenn ich sie beende, ohne irgendwelche Klimmzüge mit Neuzeichnen usw.
|
Re: TaskIcon wird unter Vista nicht gelöscht.
Die Anwendung läuft im Hintergrund und wird aus einer Prozedur mit "PostMessage(Application.Handle, WM_CLOSE, 0, 0)" beendet.
Handle ist immer "Application.Handle" GetLastError (habe ich gerade geprüft) liefert unmmittelbar nach TaskBarFreeIcon im OnClose: 1447 "Das Fenster hat keine Bildlaufleiste". Eigenartig! Gruß Klaus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz