powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Автовосстановление иконки в трее
5 сообщений из 5, страница 1 из 1
Автовосстановление иконки в трее
    #37765051
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Горбонос потому что я когда пишу программы работающие с треем, всегда по таймеру удаляю\добавляю
иконку в трей. По опыту, если срубить и потом снова запустить процес explorer.exe то иконки некоторых приложений
теряются из трея и работающая программа становится неуправляема. Приходится убивать процес и запускать снова. Поэтому у
меня всегда есть код, который восстанавливает иконку в трее. И не только у меня.
Игорь, не приведешь этот код?

Я похоже напоролся на эту проблему.

Хочу использовать планировщик заданий /SC ONLOGON для автостарта приложения (на виста/вин7 в обход UAC и прочей дряни).
При тестах обратил внимание, что приложение запускается а иконка не всегда. Если ставить задержку 5 сек, то появляется, но если грузится долго, напр. при создании нового юзера, то и 5 сек не хватит. Думаю проблема в том о чем ты написал.
И что значит "по таймеру удаляю\добавляю"? Она ж тогда прыгать будет из места в место? А если "И не только у меня.", то это чехарда непрерывная будет.
...
Рейтинг: 0 / 0
Автовосстановление иконки в трее
    #37765475
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делать раз в секунду
Код: vbnet
1.
2.
    Shell_NotifyIcon NIM_DELETE, nid
    Shell_NotifyIcon NIM_ADD, nid


не есть вариант, уже проверил. Глюкомерцание будет.
М.б. есть способ узнать, выведена ли иконка в настоящий момент?
...
Рейтинг: 0 / 0
Автовосстановление иконки в трее
    #37765485
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если просто делать раз в секунду
Код: vbnet
1.
    Shell_NotifyIcon NIM_ADD, nid


Решение? Если она там уже есть, он похоже ее не добавляет. Мерцания нет, иконка никуда не скачет. После убийства explorer при перезапуске возобновляется.
Пойду на семерке пробовать ONLOGON.
...
Рейтинг: 0 / 0
Автовосстановление иконки в трее
    #37765766
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Дмитрий77
> Игорь, не приведешь этот код?

Код не приведу, т.к. это был Борландовский компонент от 5-го билдера. Там запускали таймер на минуту(не помню уже) и по
тику таймера удаляли иконку из трея и добавляли снова. В коде это выглядело двумя строчками
Код: plaintext
1.
2.
TrayIcon1.Visible = false;
TrayIcon1.Visible = true;



Да, иконка перепрыгивала в конец, но это не критично, т.к. этот прыжок был как правило при старте винды, потом, когда
все загружалось, уже ничего не прыгало. Хотя иногда, по моему, промигивало

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Автовосстановление иконки в трее
    #37766005
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносТам запускали таймер на минуту
Долго. Минуту иконку ждать надо.
Игорь Горбонос
Код: plaintext
1.
2.
TrayIcon1.Visible = false;
TrayIcon1.Visible = true;


Хотя иногда, по моему, промигивало
Это мой первый вариант. Если делать это раз в секунду, будет очень так хорошо промигивать.

Мой второй вариант по ходу правильный. Ничего не промигивает, не множится, и за секунду восстанавливается.
Оно игнорирует, когда уже и так visible. По крайне мере в моем API-варианте. Не знаю что там в контроле наворочено.
Не надо ее удалять.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Автовосстановление иконки в трее
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]