Hallo
Ich habe das gleiche Problem die Tage auch gehabt und eine sehr einfache und schöne Lösung gefunden.
Das Icon verschwindet wenn man mit der Maus darüber fährt, richtig ?
Also machen wir uns das zunutze und machen das mit Sourcecode. Gesagt sei dabei, dass die Maus nicht wirklich verschoben wird.
Habe den Code im Internet gefunden. Weiß allerdings auch nicht mehr wo genau. Schau es dir mal an....
Delphi-Quellcode:
Procedure KillTrayIcon;
var
wnd : cardinal;
rec : TRect;
w,h : integer;
x,y : integer;
begin
// find a handle of a tray
wnd := FindWindow('
Shell_TrayWnd',
nil);
wnd := FindWindowEx(wnd, 0, '
TrayNotifyWnd',
nil);
wnd := FindWindowEx(wnd, 0, '
SysPager',
nil);
wnd := FindWindowEx(wnd, 0, '
ToolbarWindow32',
nil);
// get client rectangle (needed for width and height of tray)
windows.GetClientRect(wnd, rec);
// get size of small icons
w := GetSystemMetrics(sm_cxsmicon);
h := GetSystemMetrics(sm_cysmicon);
// initial y position of mouse - half of height of icon
y := w
shr 1;
while y < rec.Bottom
do begin // while y < height of tray
x := h
shr 1;
// initial x position of mouse - half of width of icon
while x < rec.Right
do begin // while x < width of tray
SendMessage(wnd, wm_mousemove, 0, y
shl 16
or x);
// simulate moving mouse over an icon
x := x + w;
// add width of icon to x position
end;
y := y + h;
// add height of icon to y position
end;
end;