|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
Как избежать исчезновения значка в SysTray при перезагрузке проводника?05.03.2018, 06:16. Показов 1510. Ответов 17
Метки нет (Все метки)
Всем здравствуйте.
Используем пример из Examples/Apps/TrayIcon (Borland C++Builder6) (Архив с примером прикреплён к вопросу). Запускаем откомпилированный экзешник, сворачиваемся в SysTray. Выгружаем из памяти с помощью диспетчера задач все экземпляры проводника (до появления "чистого" рабочего стола, без значков). Запускаем с помощью диспетчера новую задачу explorer.exe. Всё восстановится, в том числе различные значки в SysTray. А вот наше приложение (trayicon.exe) оставаясь невыгруженным из памяти свой значок в SysTray потеряет. Как от этого глюка убежать? Понимаю тех, кто скажет, пользуйтесь многочисленными компонентами сторонних производителей, но прошу эту тему (доп компонентов)не поднимать. Глюк с перезагрузкой explorera о котором идёт речь явление довольно частое для всех Windows. При этом особое раздражение вызывает случай, когда свёрнутое в трей приложение не допускает (по замыслу программиста) запуска своей второй копии. Описанная проблема решаема для приложения на Win32 API (Visual Studio 2010), она учтена в элементе управления NotifyIcon упомянутой Visual Studio, а как сие реализовать в Builder непонятно.
0
|
|
| 05.03.2018, 06:16 | |
|
Ответы с готовыми решениями:
17
Как избежать остановки таймера при выскакивании MsgBox и при нажатии на кнопку “закрыть”?
|
|
Супер-модератор
|
|
| 05.03.2018, 11:13 | |
Сообщение было отмечено jkrnd как решение
Решение
При старте приложения через RegisterWindowMessage зарегистрировать сообщение с именем TaskbarCreated, и потом ловить его, как только оно получено - значит, был пересоздан таскбар, и нужно заново добавить в трей иконку. Это прекрасно описано в MSDN, то же самое делается и в Дельфи/Билдере через переопределение метода WndProc
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 05.03.2018, 12:47 [ТС] | ||||||
|
volvo, идея понятна. Как реализовать нет. Что значит переопределить оконную процедуру конкретно в C++builder? Попробовал вставить код
Пример бы?
0
|
||||||
|
Супер-модератор
|
|||||||||||
| 05.03.2018, 12:52 | |||||||||||
|
Значит, Билдер старый. Тогда просто:
1
|
|||||||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 05.03.2018, 13:25 [ТС] | |
|
volvo, в C++Builder6 в классе формы нет раздела protected, только __published:, private:, public: ?
0
|
|
|
1814 / 885 / 223
Регистрация: 10.02.2018
Сообщений: 3,682
|
|
| 05.03.2018, 13:30 | |
|
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 05.03.2018, 15:23 [ТС] | |
|
0
|
|
| 05.03.2018, 15:38 | |
|
Не по теме:
0
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 05.03.2018, 15:38 [ТС] | ||||||
|
volvo,
Кликните здесь для просмотра всего текста
0
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||
| 05.03.2018, 16:57 [ТС] | ||
|
volvo, блин! Загрузил проект скомпилировал - всё ОК. Чудеса. Извиняюсь. Буду дальше копать.
Не по теме: Наверное стоит бросить мучать проект-пример с классом TTrayIcon и сделать всё самому как в msdn. Добавлено через 14 минут практически получилось! Теперь при перезагрузке проводника появляется сообщение: TaskbarCreated. осталось заменить его на код, отвечающий за перерисовку иконки. Спасибо! Добавлено через 5 минут Не по теме: какой порекомендуете? Важно, чтобы он шёл под WinXP
0
|
||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 26.04.2018, 19:44 [ТС] | ||||||
|
volvo, а для случая использования компонента TrayIcon (вкладка Samples) как заново добавляем иконку в трэй?
0
|
||||||
|
Супер-модератор
|
||||||
| 26.04.2018, 20:51 | ||||||
|
Со вкладки Samples - без понятия, оно мне неинтересно, а вот со стандартным TTrayIcon вполне себе проходит трюк с динамическим созданием/пересозданием:
1
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||||||
| 26.04.2018, 22:02 [ТС] | ||||||
|
volvo, в CreateTI() я добавил
Добавлено через 21 секунду Проверено на Win8.1
0
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
||
| 26.04.2018, 22:29 [ТС] | ||
|
Добавлено через 14 минут volvo, проверил в эмуляторе WinXP SP3 - всё работает как надо. Не по теме: За одно сделал для себя открытие: чтобы exe-файл заработал в системе без установленного буилдера (6.0) достаточно бросить в System32 всего 2 файла: bcbsmp60.bpl и vclx60.bpl.
0
|
||
| 26.04.2018, 22:29 | |
|
Помогаю со студенческими работами здесь
18
Исчезновения блока при нажатии Избавиться от исчезновения клеток при столкновении
Как завершить программу при выходе из системы или перезагрузке?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|