Witam.
Tworzę soebie w wolnych chwilach własnego shella.
Na razie skupiam się na dopracowaniu Tray-a. Jednak jest problem z menu kontekstowym itd.
Działa na wszystkich programach prócz ikon sieciowych.
Ikony sieciowe mam dwie - jedna dotyczy domowego LAN-u, druga sieci bezprzewodowej.
Sound Volume reaguje poprawnie.
Robię to tak:
WM_LBUTTONDOWN, WM_LBUTTONUP, WM_RBUTTONDOWN, WM_RBUTTONUP:
begin
//P.X := LoWord(lPar);
//P.Y := HiWord(lPar);
GetCursorPos(P);
ScreenToClient(H, P);
Numer := 0;
Numer := Floor(P.X / (FIconWidth + FIconSpacing)); //Wyliczam sobie numer ikonki
Pozycja := 0; //Zmienna pomocnicza, nie jest zwiększana, gdy aktualna ikona jest ukryta
Tmp := Root;
if Numer > 0 then
while (Tmp <> nil) and (Pozycja < Numer) do
begin
Tmp := Tmp^.NextIcon;
if Tmp <> nil then
if ((not Tmp^.Data.bHidden) and (not Tmp^.Data.bShared)) then Inc(Pozycja);
end;
//tak wysyłam komunikat:
if Tmp <> nil then PostMessage(Tmp^.Data.hWnd, Tmp^.Data.uCallbackMsg, Tmp^.Data.uID, uMsg);
end;