Очистка трея.

Обсуждения желаемых нововведений к программе
Ответить
Аватара пользователя
Vladimir V. Shirjak
Пилот экстра класса
Сообщения: 41
Зарегистрирован: Пн авг 06, 2007 11:50 pm
Благодарил (а): 0
Поблагодарили: 0

Очистка трея.

Сообщение Vladimir V. Shirjak » Чт авг 23, 2007 11:24 am

Если у задачи есть иконка в трее, а задачу убить, то иконка в трее останется.
Хочу задачу RefreshTray.
Vladimir V. Shirjak
Russia
SPb

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Очистка трея.

Сообщение Alex » Чт авг 23, 2007 11:40 am

К сожалению никаких явных методов решить эту проблему Microsoft не предоставляет. Нет никаких способов вызвать отрисовку трея, при этом чтобы удалились иконки несуществующих процессов.

Есть один неявный метод решения - необходимо провести мышью в области трея над иконками. Тогда иконки исчезнут. xStarter может выполнить эту задачу двумя способами: через макрос или через действие MouseMove.

Аватара пользователя
Vladimir V. Shirjak
Пилот экстра класса
Сообщения: 41
Зарегистрирован: Пн авг 06, 2007 11:50 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Очистка трея.

Сообщение Vladimir V. Shirjak » Чт авг 23, 2007 2:00 pm

Alex писал(а):К сожалению никаких явных методов решить эту проблему Microsoft не предоставляет. Нет никаких способов вызвать отрисовку трея, при этом чтобы удалились иконки несуществующих процессов.

Есть один неявный метод решения - необходимо провести мышью в области трея над иконками. Тогда иконки исчезнут. xStarter может выполнить эту задачу двумя способами: через макрос или через действие MouseMove.
Но ведь трей, в общем случае, может располагаться не только в правом нижнем углу. :(
Vladimir V. Shirjak
Russia
SPb

AlexII
Пилотируем с автопилотом
Сообщения: 36
Зарегистрирован: Ср янв 17, 2007 11:25 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Очистка трея.

Сообщение AlexII » Чт авг 23, 2007 9:38 pm

Vladimir V. Shirjak писал(а):Но ведь трей, в общем случае, может располагаться не только в правом нижнем углу. :(
Угу, и TaskBar у некоторых занимает больше одной строки, и SystemTray может быть разной длины, и темы разные, и размер шрифта нестандартный, и масштабирование включено :D.
Со своей стороны могу только подтвердить слова Alex'а: в свой время мне тоже нужно было убирать иконки убитых задач из SystemTray, причём задачи убивались из командной строки/пакетных файлов. Долго искал и по нашему I-net'у, и не нашему; MSDN — ничего существенного не нашёл. Различные манипуляции с окном через его хэндл результата тоже не дали. Не могу сказать, что это абсолютно не решаемая проблема, может быть плохо искал, но пока — увы.
Попробуйте использовать ряд последовательных действий MouseMove, очертив при этом несколько квадратов на экране нужного размера.
AlexII

Аватара пользователя
Vladimir V. Shirjak
Пилот экстра класса
Сообщения: 41
Зарегистрирован: Пн авг 06, 2007 11:50 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Очистка трея.

Сообщение Vladimir V. Shirjak » Чт авг 23, 2007 10:54 pm

AlexII писал(а): Со своей стороны могу только подтвердить слова Alex'а: в свой время мне тоже нужно было убирать иконки убитых задач из SystemTray, причём задачи убивались из командной строки/пакетных файлов. Долго искал и по нашему I-net'у, и не нашему; MSDN — ничего существенного не нашёл. Различные манипуляции с окном через его хэндл результата тоже не дали. Не могу сказать, что это абсолютно не решаемая проблема, может быть плохо искал, но пока — увы.
Блин, но ведь офтопик это как-то делает:(
TRAY-REFRESH

"Обновляет" системный трей и удаляет из него "фантомные" иконки, которые могут там остаться, например, после принудителного прерывания процесса.
Vladimir V. Shirjak
Russia
SPb

Аватара пользователя
Romik©
Авиаконструктор
Сообщения: 263
Зарегистрирован: Пн май 16, 2005 10:05 pm
Откуда: Кольчугино
Благодарил (а): 0
Поблагодарили: 9 раз
Контактная информация:

Re: Очистка трея.

Сообщение Romik© » Пт авг 24, 2007 12:46 am

Могу в быстром темпе предложить вариант, который будет работать только на Win XP. Более сложный вариант с перебором "чужих" значков в трее, могу реализовать только в xWindowScanner ближе к зиме...
RefreshTray.spm
"Обновление" системного трея
(5.47 КБ) 925 скачиваний
Экономте электроэнергию, выключайте Num Lock!

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Очистка трея.

Сообщение Alex » Пт авг 24, 2007 4:26 am

Супер! Работает!

Romik© , включаю в основной пакет? ;)

AlexII
Пилотируем с автопилотом
Сообщения: 36
Зарегистрирован: Ср янв 17, 2007 11:25 pm
Благодарил (а): 0
Поблагодарили: 0

Re: Очистка трея.

Сообщение AlexII » Пт авг 24, 2007 5:36 am

2Romik©
Кстати, чужие значки тоже убирает (после ручного убиения процесса). По крайней мере у меня. Утром опробую таки на W2K.

== Позже ================================================
Под W2K, как Вы и писали, действие не отрабатывает. [Log: The class of a child window (SysPager) was not found.]
Последний раз редактировалось AlexII Сб авг 25, 2007 9:34 am, всего редактировалось 1 раз.
AlexII

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Очистка трея.

Сообщение Alex » Пт авг 24, 2007 5:46 am

Ну да, это как раз для убирания чужих зависших иконок. Romik© эмулирует таки движение мыши над окном трея, правда делает это самым замечательным образом - просто отправляет команду WM_MOUSEMOVE окну трея :). При этом реального движения мыши не происходит и все счастливы и довольны :).

Аватара пользователя
Romik©
Авиаконструктор
Сообщения: 263
Зарегистрирован: Пн май 16, 2005 10:05 pm
Откуда: Кольчугино
Благодарил (а): 0
Поблагодарили: 9 раз
Контактная информация:

Re: Очистка трея.

Сообщение Romik© » Пт авг 24, 2007 7:34 am

Alex писал(а):Супер! Работает!

Romik© , включаю в основной пакет? ;)
Alex, конечно! :wink:
Экономте электроэнергию, выключайте Num Lock!

Аватара пользователя
Alex
Ас
Сообщения: 2833
Зарегистрирован: Вт апр 05, 2005 3:28 pm
Откуда: Kaliningrad City
Благодарил (а): 2 раза
Поблагодарили: 91 раз
Контактная информация:

Re: Очистка трея.

Сообщение Alex » Пт авг 24, 2007 7:43 am

Ок, спасиб. ;)

avmaksimov
Ас
Сообщения: 907
Зарегистрирован: Чт май 08, 2008 2:48 pm
Откуда: г. Москва, Россия
Благодарил (а): 6 раз
Поблагодарили: 16 раз
Контактная информация:

Re: Очистка трея.

Сообщение avmaksimov » Ср июл 08, 2009 12:13 pm

А у меня не работает... Да и как она может работать, если мышку подносит только к верхней границе Tray'я.... А ведь надо же подвести мышь именно над иконкой того самого процесса :(((((.....
С уважением, Андрей.

Pavel
Ас
Сообщения: 287
Зарегистрирован: Пт июн 30, 2006 3:23 pm
Благодарил (а): 7 раз
Поблагодарили: 21 раз

Re: Очистка трея.

Сообщение Pavel » Ср июл 08, 2009 2:38 pm

А я заметил, что исчезают только те значки, которые не скрыты в настоящий момент.

ЗЫ. А вообще, не так давно мучился со странной работой xStarter'а. Потом снёс напрочь и поставил по новой. Почувствовал разницу.

avmaksimov
Ас
Сообщения: 907
Зарегистрирован: Чт май 08, 2008 2:48 pm
Откуда: г. Москва, Россия
Благодарил (а): 6 раз
Поблагодарили: 16 раз
Контактная информация:

Re: Очистка трея.

Сообщение avmaksimov » Ср июл 08, 2009 9:28 pm

Pavel писал(а):А я заметил, что исчезают только те значки, которые не скрыты в настоящий момент.

ЗЫ. А вообще, не так давно мучился со странной работой xStarter'а. Потом снёс напрочь и поставил по новой. Почувствовал разницу.
Я специально завершил процесс, значок которого был виден (Punto Switcher) и результат нулевой.... Поднес к нему мышью и пропал значок...
С уважением, Андрей.

Ответить