Где иконка?
От: xlich  
Дата: 26.11.14 07:32
Оценка:
Добрый день! Есть приложение, которое висит в трее. Управление работой — старт/стоп/статистика... — осуществляется из контекстного меню по правой кнопке на иконке. Всё прекрасно работает, но...!!! Через 1-2-3 недели (по-разному) иконка из трея ИСЧЕЗАЕТ!!! Потому приходится — например для обновления версии программы — сначала убить её из диспетчера задач, а уж потом обновлять. Самый большой минус такого способа — теряется статистика, режимы работы и т.д. Да, можно это всё сохранять в логе, но, по некоторым причинам, это не выход. Система ХР, в настройках свойств панели задач галочка "Скрывать неиспользуемые значки" убрана. Пробовал её поставить и на иконке приложения включить "Показывать всегда" — не помогает. Вопрос — где иконка???
Re: Где иконка?
От: CEMb  
Дата: 26.11.14 09:08
Оценка:
Здравствуйте, xlich, Вы писали:

X>Вопрос — где иконка???


Сколько уж работаю с треем, никогда такого не видел, и никто никогда не жаловался.
Гипотеза: само приложение где-то убирает её из трея. Рекомендация: поставить отладочный вывод в лог точки деинициализации иконки из трея. В крайнем случае: перехватить Shell_NotifyIcon и посмотреть, кто зовёт.
Хотя не, вот сейчас вспомнил один случай, когда иконка не появлялась при установке: я внедрялся в таскбар, одновременно устанавливал иконку, так как моё окно было "занято", оно подсаживало родителя, а вместе с ним и весь таскбар, т.о. трей просто не мог отреагировать на запрос, так как был занят Порешалось потоками. Может это наведёт на какую полезную мысль
Re: Где иконка?
От: saf_e  
Дата: 26.11.14 09:52
Оценка: 2 (1)
Здравствуйте, xlich, Вы писали:

X>Добрый день! Есть приложение, которое висит в трее. Управление работой — старт/стоп/статистика... — осуществляется из контекстного меню по правой кнопке на иконке. Всё прекрасно работает, но...!!! Через 1-2-3 недели (по-разному) иконка из трея ИСЧЕЗАЕТ!!! Потому приходится — например для обновления версии программы — сначала убить её из диспетчера задач, а уж потом обновлять. Самый большой минус такого способа — теряется статистика, режимы работы и т.д. Да, можно это всё сохранять в логе, но, по некоторым причинам, это не выход. Система ХР, в настройках свойств панели задач галочка "Скрывать неиспользуемые значки" убрана. Пробовал её поставить и на иконке приложения включить "Показывать всегда" — не помогает. Вопрос — где иконка???


У нас была подобная проблема, но на более новых системах, полечили http://msdn.microsoft.com/en-us/library/windows/desktop/bb773352(v=vs.85).aspx добавлением guidItem.
В вашем случае, тяжело что-то посоветовать.
Re: Где иконка?
От: okman Беларусь https://searchinform.ru/
Дата: 26.11.14 11:02
Оценка: 1 (1)
Здравствуйте, xlich, Вы писали:

X>Через 1-2-3 недели (по-разному) иконка из трея ИСЧЕЗАЕТ!!!


Очевидное спрошу — а сообщение "TaskbarCreated" вы обрабатываете ?
Re[2]: Где иконка?
От: xlich  
Дата: 26.11.14 12:20
Оценка:
Здравствуйте, okman, Вы писали:


O>Очевидное спрошу — а сообщение "TaskbarCreated" вы обрабатываете ?


Я извиняюсь — а что это???
Re[3]: Где иконка?
От: TEN Россия  
Дата: 26.11.14 13:49
Оценка:
А это одно из последствий перезапуска Explorer.exe
Re[3]: Где иконка?
От: okman Беларусь https://searchinform.ru/
Дата: 26.11.14 16:14
Оценка: 12 (2)
Здравствуйте, xlich, Вы писали:

O>>Очевидное спрошу — а сообщение "TaskbarCreated" вы обрабатываете ?


X>Я извиняюсь — а что это???


Explorer.exe рассылает это сообщение всем top-level окнам при запуске, когда панель задач
проинициализирована и ей можно пользоваться. Типичный сценарий: explorer.exe по каким-то
причинам был завершен, а затем запущен заново: все иконки из трея пропадают, но те,
кто был подписан на "TaskbarCreated", смогут восстановить их.

Подробнее здесь:

The Taskbar (MSDN)
http://msdn.microsoft.com/en-us/library/windows/desktop/cc144179%28v=vs.85%29.aspx
Re[4]: Где иконка?
От: xlich  
Дата: 27.11.14 06:07
Оценка:
Здравствуйте, okman, Вы писали:

O>Explorer.exe рассылает это сообщение всем top-level окнам при запуске, когда панель задач

O>проинициализирована и ей можно пользоваться. Типичный сценарий: explorer.exe по каким-то
O>причинам был завершен, а затем запущен заново: все иконки из трея пропадают, но те,
O>кто был подписан на "TaskbarCreated", смогут восстановить их.

O>Подробнее здесь:


O>The Taskbar (MSDN)

O>http://msdn.microsoft.com/en-us/library/windows/desktop/cc144179%28v=vs.85%29.aspx

Хм... Не знал, т.к. не сталкивался. Переписал код по рекомендациям МСДН, обновил программу, буду ждать результата. Спасибо! Как здесь оценить качество ответа? По-моему, +5 — это справедливо
Re[2]: Где иконка?
От: Carc Россия http://www.amlpages.com/home.php
Дата: 27.11.14 08:23
Оценка:
Здравствуйте, saf_e, Вы писали:

_>У нас была подобная проблема, но на более новых системах, полечили http://msdn.microsoft.com/en-us/library/windows/desktop/bb773352(v=vs.85).aspx добавлением guidItem.

А на кой кстати нужен этот GUID? Чего он дает? В MSDN как-то об этом невнятно написано. Для чего он нужен системе?
Aml Pages Home
Re[3]: Где иконка?
От: saf_e  
Дата: 27.11.14 09:29
Оценка: 4 (1)
Здравствуйте, Carc, Вы писали:

C>Здравствуйте, saf_e, Вы писали:


_>>У нас была подобная проблема, но на более новых системах, полечили http://msdn.microsoft.com/en-us/library/windows/desktop/bb773352(v=vs.85).aspx добавлением guidItem.

C>А на кой кстати нужен этот GUID? Чего он дает? В MSDN как-то об этом невнятно написано. Для чего он нужен системе?

Чтобы однозначно идентифицировать иконку. Как я понимаю для икон-менеджера (т.е. показывать/не показывать, скрывать оповещения и т.п.).

Основной кейс, как я думаю это для програм имееющих больше одной иконки в трее, но в нашем случае был какой-то затык на одной из машин и логика работала не корректно, пришлось добавить.
Re[4]: Где иконка?
От: Carc Россия http://www.amlpages.com/home.php
Дата: 27.11.14 11:05
Оценка:
Здравствуйте, saf_e, Вы писали:


_>Чтобы однозначно идентифицировать иконку. Как я понимаю для икон-менеджера (т.е. показывать/не показывать, скрывать оповещения и т.п.).

О-как. Не знал. Век живи — век учись! Спасибо!
А как тогда будет себя вести icon-менеджер если иконка у софтины одна, и гуид там и вовсе не указывается? Есть какие-то мысли на эту тему? Опыт?

_>Основной кейс, как я думаю это для програм имееющих больше одной иконки в трее, но в нашем случае был какой-то затык на одной из машин и логика работала не корректно, пришлось добавить.

А если не секрет, в чем логика сбивалась (ну если кроме того что иконку прятал менеджер)?
Aml Pages Home
Re[5]: Где иконка?
От: saf_e  
Дата: 27.11.14 11:30
Оценка:
Здравствуйте, Carc, Вы писали:

C>Здравствуйте, saf_e, Вы писали:



_>>Чтобы однозначно идентифицировать иконку. Как я понимаю для икон-менеджера (т.е. показывать/не показывать, скрывать оповещения и т.п.).

C>О-как. Не знал. Век живи — век учись! Спасибо!
C>А как тогда будет себя вести icon-менеджер если иконка у софтины одна, и гуид там и вовсе не указывается? Есть какие-то мысли на эту тему? Опыт?
Так же как и до Vista/7, как я подозреваю использует имя процесса (путь?).

_>>Основной кейс, как я думаю это для програм имееющих больше одной иконки в трее, но в нашем случае был какой-то затык на одной из машин и логика работала не корректно, пришлось добавить.

C>А если не секрет, в чем логика сбивалась (ну если кроме того что иконку прятал менеджер)?
Тикет имплементил не я, поэтому глубоко я в него не закапывался. Возможно терялась нотификация от иконки тоже.

Это был какой-то вырожденный кейс, репро был очень редкий.
Re[4]: Где иконка?
От: xlich  
Дата: 17.12.14 13:13
Оценка:
Здравствуйте, okman, Вы писали:

O>Explorer.exe рассылает это сообщение всем top-level окнам при запуске, когда панель задач

O>проинициализирована и ей можно пользоваться. Типичный сценарий: explorer.exe по каким-то
O>причинам был завершен, а затем запущен заново: все иконки из трея пропадают, но те,
O>кто был подписан на "TaskbarCreated", смогут восстановить их.

O>Подробнее здесь:


O>The Taskbar (MSDN)

O>http://msdn.microsoft.com/en-us/library/windows/desktop/cc144179%28v=vs.85%29.aspx

Именно так и случилось!!!! Прошло три недели и есть результат. Я запустил 2 версии — с исправлениями и без и, чтобы не путаться, немного изменил название исполняемого файла. Контролировал каждый день. И вот сегодня свершилось!!! Иконка у "старой" версии исчезла, а с исправлениями — нет. Так что — ещё раз спасибо!!!
Re[5]: Где иконка?
От: Vain Россия google.ru
Дата: 03.01.15 21:13
Оценка: -1
Здравствуйте, xlich, Вы писали:

X>Именно так и случилось!!!! Прошло три недели и есть результат. Я запустил 2 версии — с исправлениями и без и, чтобы не путаться, немного изменил название исполняемого файла. Контролировал каждый день. И вот сегодня свершилось!!! Иконка у "старой" версии исчезла, а с исправлениями — нет. Так что — ещё раз спасибо!!!

Вот это я понимаю тестер! В виртуалке гебернейт и перевести часы это не наше. Только хардкор!
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[6]: Где иконка?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 07.01.15 23:39
Оценка:
Здравствуйте, Vain, Вы писали:

X>>Именно так и случилось!!!! Прошло три недели и есть результат. Я запустил 2 версии — с исправлениями и без и, чтобы не путаться, немного изменил название исполняемого файла. Контролировал каждый день. И вот сегодня свершилось!!! Иконка у "старой" версии исчезла, а с исправлениями — нет. Так что — ещё раз спасибо!!!

V>Вот это я понимаю тестер! В виртуалке гебернейт и перевести часы это не наше. Только хардкор!

Так у него после трехнедельного аптайма глюк поймался. А какой аптайм будет у системы в гибернейте?
Маньяк Робокряк колесит по городу
Re[5]: Где иконка?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 08.01.15 00:09
Оценка: 8 (1)
Здравствуйте, xlich, Вы писали:

X>Именно так и случилось!!!! Прошло три недели и есть результат. Я запустил 2 версии — с исправлениями и без и, чтобы не путаться, немного изменил название исполняемого файла. Контролировал каждый день. И вот сегодня свершилось!!! Иконка у "старой" версии исчезла, а с исправлениями — нет. Так что — ещё раз спасибо!!!


Кстати, еще полезно знать о ChangeWindowMessageFilterEx и о том, в каких случаях она может помочь — https://social.msdn.microsoft.com/forums/windowsdesktop/en-US/f4370108-9cf9-4353-a086-a6f5112947ce/taskbarcreated-message
Маньяк Робокряк колесит по городу
Re[7]: Где иконка?
От: Vain Россия google.ru
Дата: 08.01.15 02:22
Оценка:
Здравствуйте, Marty, Вы писали:

V>>Вот это я понимаю тестер! В виртуалке гебернейт и перевести часы это не наше. Только хардкор!

M>Так у него после трехнедельного аптайма глюк поймался. А какой аптайм будет у системы в гибернейте?
а чему там аптаймиться?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[8]: Где иконка?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 08.01.15 02:37
Оценка:
Здравствуйте, Vain, Вы писали:

V>>>Вот это я понимаю тестер! В виртуалке гебернейт и перевести часы это не наше. Только хардкор!

M>>Так у него после трехнедельного аптайма глюк поймался. А какой аптайм будет у системы в гибернейте?
V>а чему там аптаймиться?

Ну, как я понял, у него система три недели честно пахала, и кто-то повалил explorer, который перезапустился. Как тут гибернейт поможет — я
Хотя, можно было просто для начала убить эксплорер и запустить его заново, и посмотреть, как работает. Но удостоверится, что проблема была именно в этом, не поможет.
Маньяк Робокряк колесит по городу
Re[9]: Где иконка?
От: Vain Россия google.ru
Дата: 08.01.15 12:21
Оценка:
Здравствуйте, Marty, Вы писали:

V>>а чему там аптаймиться?

M>Ну, как я понял, у него система три недели честно пахала, и кто-то повалил explorer, который перезапустился. Как тут гибернейт поможет — я
M>Хотя, можно было просто для начала убить эксплорер и запустить его заново, и посмотреть, как работает. Но удостоверится, что проблема была именно в этом, не поможет.
я не понимаю только причём здесь относительное время работы приложения
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[10]: Где иконка?
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 08.01.15 14:04
Оценка:
Здравствуйте, Vain, Вы писали:

M>>Ну, как я понял, у него система три недели честно пахала, и кто-то повалил explorer, который перезапустился. Как тут гибернейт поможет — я

M>>Хотя, можно было просто для начала убить эксплорер и запустить его заново, и посмотреть, как работает. Но удостоверится, что проблема была именно в этом, не поможет.
V>я не понимаю только причём здесь относительное время работы приложения

А я не понимаю, из какого пальца ты высосал относительность времени. ТС врооде писал об абсолютной величине, примерно равной 3*7*24*60 минут
Маньяк Робокряк колесит по городу
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.