Hallo,
mal wieder ein Problem mit Icons im Systray:
ich habe ein (
nonVCL-)Programm geschrieben, dass via Shell_NotifyIcon() ein Icon im Systemtray ablegt. Das funktionert alles wunderbar, wenn das Programm einfach so im laufenden Betrieb gestartet wird (wie es ja normalerweise der Fall ist). In meinem Fall wird es aber aller Regel nach durche in Loginscript gestartet, d.h. kurz bevor Windows Shell/die Taskleiste/was auch immer lädt. Von daher erscheint es noch nicht im Tray, läuft aber trotzdem. Gibt es eine Möglichkeit, dieses Problem zu beheben? Ich hatte jetzt eigentlich nicht vor, alle 20 Sekunden per Timer etc. das Symbol zu updaten.
rudi
btw, das problem besteht natürlich genauso in einem "normalen"
VCL Programm in verbindung mit Shell_NotifyIcon. Und soweit ich mich erinnere, tritt der Fall z.B. nicht auf, wenn ich eine Kompenente wie CoolTrayIcon etc. benutze (hatte aber noch keine zeit, mir dessen code mal genauer anzusehen).
hier der code:
Delphi-Quellcode:
...
pnid.cbSize := SizeOf(pnid);
pnid.Wnd := MainForm;
pnid.uID := 0;
pnid.uCallbackMessage := WM_USER+1002;
pnid.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
pnid.hIcon := LoadIcon(0,IDI_APPLICATION);
pnid.szTip := 'application starting..';
Shell_NotifyIcon(NIM_ADD,@pnid);
...