[Delphi/Winapi] Własny Explorer

0

Mam zamiar zabrać się za napisanie zamiennika systemowego Explorer.exe ;] ale nie wiem na czym polega
tworzenie Tray. :-|
Chce żeby na formie mojego programu były ikony tak jak obok zegara i żeby można było sterować aplikacjami tak jak w explorer. Nie chcę pisać osobnego modułu SysTray.exe, ale zrobić tak żeby wszystko było w jednym pliku exe.
Może mi ktoś powiedzieć jak to zrobić (oczywiście w czystym Winapi, nie wykorzystując SysUtils i innych zjadaczy miejsca) ?
Nie obrażę się również na gotową funkcję... :-)

0

Nie wiem ale tworzenie ikonki w tray'u jest spowodowane przez użycie Shell_NotifyIconktora implikuje <ort>urzycie </ort>Shell_NotifyIconW. Z kolei Shell_NotifyIconW wywołuje FindWindowW a następnie SendMessageTimeOutW, co może wskazywać na to że operacje na ikonach tray'a są wyklonywane przy użyciu komunikatów. Niestety nie wiem z jakimi parametrami są wywoływane funkcje FindWindowW, SendMessageTimeOutW. Więc nie jestem w stanie powiedzieć żadnych konkretnych informacji.

// proszę, zacznij wreszcie używać słownika - Ł

0

A wiesz może gdzie można znaleźć takie informacje? Może jakiś angielski serwis?

0

Sam niedawno pisałem coś takiego. Poświęciłem na to sporo czasu, głównie na znalezienie na google odpowiedniej metody.

Podpowiem dość skromnie:
Musisz stworzyć okno o dokładnie takich samych klasach/nazwach jak systemowy tray (Wraz z rodzicami). Następnie musisz obsłużyć komunikat WM_COPYDATA przychodzący do tegoż okienka. Zawiera on wskaźnik, na strukturę z ikoną. Dalej to już tylko zapisywanie danych.

Ale to dopiero pierwszy etap - gromadzenie przychodzących danych (wydaje mi się, że jest on najtrudniejszy). Dalej to już tylko wyświetlanie, obsługa komunikatów (wysyłanie do odpowiedniej aplikacji po kliknięciu), hinty i inne szczegóły.

//edit:
Większość co znalazłem, to na grupach i w kodzie zrodlowym bb4win.

0

A udało Ci się?
Może podasz jakieś adresy żebym szybciej znalazł?
Jak nie to pozostanie mi google i sporo czasu...

1 użytkowników online, w tym zalogowanych: 0, gości: 1