Zitat:
Und das wäre eine möglichkeit!
FindWindowEx
GetClientRect
SendMessage
Ich hab sehr vieles versucht, auch den Tray Bereich mit Messages Mausklick Simulationen bombardiert. Richtig gebracht hat nichts.
Du solltest halt auch dafür sorgen das die Icons angesprochen werden.
Das sollte gehen. (Auf die schnelle zusammengetippt (Ungetestet))
Warnung
API vom Cowboy-Programmierer
Delphi-Quellcode:
procedure CleanTray;
{Entfernt ungenutzte icons vom system tray}
var
TrayNotifyHwnd: HWND;
ParentHwnd: HWND;
TrayWindowRect: TRect;
x: integer;
y: integer;
begin
ParentHwnd := FindWindow('Shell_TrayWnd', '');
//Hwnd vom TrayNotifyWnd ermitteln
TrayNotifyHwnd := FindWindowEx(ParentHwnd, 0, 'TrayNotifyWnd', '');
//ClientRect von der Classe TrayNotifyWnd einlesen
GetClientRect(TrayNotifyHwnd, TrayWindowRect);
x :=0;
y :=0;
while x < TrayWindowRect.Right do begin
while y < TrayWindowRect.Bottom do begin
SendMessage(TrayNotifyHwnd, WM_MOUSEMOVE, 0, (y shl 16) + x);
y := y + 5;
end;
x := x + 5;
end;
end;
gruss