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

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

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


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


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

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



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

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


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

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


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