Hallo,
mit folgendem Code generiere und entferne ich in der Taskbar ein Icon:
Delphi-Quellcode:
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;
Problem:
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