Jak sprawic by ikonka zniknela z tray`a

0

Witam mam taki problem jest sobie ikonka w tray`u i w formatce w programie ON CLOSE jest taki kod:

Shell_NotifyIcon(NIM_DELETE, @IconNotifyData);
Application.ProcessMessages;
Application.Terminate;

on zamyka program i wywala ikonke z traya
ale jak program np zostanie zamkniety przez inny program np po procesie ID to ikonka nie znika tylko zostaje i dopiero po najechanmiu myszka na ikone ona znika. Jak to obejsc ?

0

ale jak program np zostanie zamkniety przez inny program np po procesie ID to ikonka nie znika tylko zostaje i dopiero po najechanmiu myszka na ikone ona znika.

No ale jak twoj program ma wiedziec że został zamknięty skoro nie wykonuje zdarzenia OnClose ?? Zamknij sobie poprzez zabicie procesu dowolny program z traya - kazdy zostawia po sobie ikonke. Chyba żeby zrobić drugi program który sprawdza czy pierwszy jest uruchomiony, jesli nie to niszczy jego traya, ale czy jest sens ??

0

Dziekuje slicznie bo walsnie nie widzialem nioe ma sesnu robic programu ktory sprawdza ale patrz jest program instalacyjny i on usuwa poprzednia wersje wiec kiedy program zostanie zamkniety to ten intsalacyjny moglnby usuwac ikone a jak zrobic zeby usunac ikone jakiegos zabitego procesu ????

0

przesuń mysz nad trayem (konkretniej mouseover nad ikoną nieżywego procesu).

[dopisane]

Po założeniu traya zapisujesz sobie gdzies jego aktualny uchwyt

to jeszcze powiedz, jak pobrać ten uchwyt z cudzego programu :>

0

Jest jeszcze bardziej "profesjonalny sposób". :-)

Po założeniu traya zapisujesz sobie gdzies jego aktualny uchwyt z którym jest zwiazany. Zabijasz proces, a z drugiego programu odczytujesz zapisany wczesniej uchwyt i kulturalnie przez NIM_DELETE usuwasz traya :-) .

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