![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Tray
datorn © (2008-01-06 11:44:00)Народ, подскажите, как обновить (перерисовать) трэй. Удаляю все процессы, а иконки остаются в трэе, пока не проведешь там мышкой.
datorn (2008-01-06 14:35:00) [1]Да, это если нажать на кнопку "Выход", а если просто нажать на крестик закрытия окна или послать сообщение о закрытии, то иконка остается. А мне нужно одним нажатием закрыть все. И почистить трэй
datorn (2008-01-06 14:35:00) [2]Да, это если нажать на кнопку "Выход", а если просто нажать на крестик закрытия окна или послать сообщение о закрытии, то иконка остается. А мне нужно одним нажатием закрыть все. И почисть трэй
@!!ex (2008-01-06 14:11:00) [3]> [32] datorn © (06.01.08 14:06)
> Какое то у вас некорректное корректное завершение...
У меня MSN при закрытии после себя подчищает...
datorn (2008-01-06 14:06:00) [4]Вот например yahoomsgr -после закрытия окна иконка остается. И у MSNа также, и у ooVoo. Список могу продолжить. Эти проги ещё и в автозагрузку прописываются
@!!ex (2008-01-06 14:03:00) [5]> [29] datorn © (06.01.08 13:51)
Вабчэта у оконного приложения(а если есть иконка в трее, то оно таки оконное) достаточно послать сообщение о закрытии и этого достаточно...
> Да и потом, даже если корректно закрыть прогу, икона все
> равно остается в трэе.
Какое то у вас некорректное корректное завершение...
sniknik (2008-01-06 13:55:00) [6]> даже если корректно закрыть прогу, икона все равно остается в трэе.
автору рекламацию + неустойку! не будет больше полуфабрикатами торговать!
datorn (2008-01-06 13:51:00) [7]
> А послать им сообщение о закрытии корректном не судьба?
А что значит послать сообщение о закрытии процессам? Именно процессам, а не окнам.
Да и потом, даже если корректно закрыть прогу, икона все равно остается в трэе.
sniknik (2008-01-06 13:46:00) [8]> Сути я к сожалению не помню
жаль, потому как было бы интересно, как он находит индекс для корректного удаления иконки (так понимаю через Shell_NotifyIcon раз в тулбар как Rouse не лезет).
(провести мышкой например способ проще не бывает, но на спрятанные иконки не действует. хотя, если при раскрытии винда их перепроверяет и снимает то и этот способ корректный)
DVM (2008-01-06 13:28:00) [9]
> sniknik © (06.01.08 13:20) [24]
Я к сожалению не помню точно, по-моему на rsdn была какая то статья про как можно более аккуратное принудительное убиение чужого процесса, там и затрагивалась тема иконок. Мне тогда показался очень оригинальным способ предложенный автором. Сути я к сожалению не помню, но точно способ отличный от предложенного Rouse, да и более простой.
@!!ex (2008-01-06 13:27:00) [10]> [25] datorn © (06.01.08 13:25)
А послать им сообщение о закрытии корректном не судьба?
datorn (2008-01-06 13:25:00) [11]
> вопрос только один возникает, а нафига ты "рубишь" чужие
> процессы, вместо нормального их закрытия?
После клиентов бывает остается запущены пять-десять программ, пока все закроешь - запаришься. А так нажал на кнопочку, и все процессы рубанулись.
sniknik (2008-01-06 13:20:00) [12]> Помню лишь что там окна перебирались и что то с чем то сравнивалось.
вряд ли подобное возможно, вот например сделал я окно(приложение), при старте создал иконку uID иконке поставил "от балды" например 5555. вопрос - как другое приложение перебирая окна найдет этот uID, на котором основана вся работа с иконками? это нужно скан процессу делать (на предмет вызова функции) а не окна перебирать.
в ссылке там, имхо т.к. не разбирал, он получается у самого тулбара в эксплорере (должно был так. по логике). т.е. от обратного.
DVM (2008-01-06 13:12:00) [13]
> sniknik © (06.01.08 13:06) [21]
> но вообще вроде действительно, как говорили, есть метод
> доступиться непосредственно к нему
Да там кнопки на тулбаре, к каждой кнопке привязана структура, подобная той, что передается при добавлении иконки, но это изврат вс же.
Я где то встречал (не помню где) довольно изящный способ удаления чужой иконки. Причем не касаясь самого тулбара с иконками. Помню лишь что там окна перебирались и что то с чем то сравнивалось. До умерщвления чужого процесса ессно.
sniknik (2008-01-06 13:09:00) [14]во, у меня оказывается ссылка сохранена
http://rouse.drkb.ru/winapi.php#fwsystrayinfo
вторая демка.
sniknik (2008-01-06 13:06:00) [15]> Значит, остается только перезапустить explorer. Других путей решения проблемы не вижу
гораздо легче решение, провести над треем мышкой... программно, быстро, никто и не заметит.
но вообще вроде действительно, как говорили, есть метод доступиться непосредственно к нему... насколько помню. но только для XP/2000 в 98м это просто картинки на панели (не обьекты с которыми можно работать)
т.е. сделать более менее нормально можно, но...
вопрос только один возникает, а нафига ты "рубишь" чужие процессы, вместо нормального их закрытия? это уже само по себе ненормально, и после этого желание нормальности в иконках довольно странно.
> Довольно известные софтины.. не перезагрузились...
потому что они их не обновляют постоянно по таймеру... (сами проги), а это их дело. не закладываются на перезапуск експлорера. (они убили Кенни. сволочи! © Южный парк)
@!!ex (2008-01-06 12:53:00) [16]> Разработчики постоянно забывают об этом.
Я тоже отношусь к этим разработчикам. :)
Хотя т сложно забыть то, чего не знаешь. :))
DVM (2008-01-06 12:52:00) [17]
> не перезагрузились...
Разработчики постоянно забывают об этом. MS вроде как хотела сделать сохранение списка иконок, но что-то никак пока. Хотя в висте может сделала, я не присматривался.
@!!ex (2008-01-06 12:47:00) [18]Picasa2
Net Peeker
Довольно известные софтины.. не перезагрузились...
DVM (2008-01-06 12:43:00) [19]
> а у вас?
а у меня их мало 10 всего и из них половина ShellServiceObjects(виндовые) - остальные 5 восстанавливаются.
@!!ex (2008-01-06 12:40:00) [20]> [15] DVM © (06.01.08 12:38)
Перезагрузка explorera показала, что из 20 иконок вживых осталось меньше половины... и те почти все виндовые... а у вас?