Всем доброго времени суток. При старте системы WinXP иногда не показывает в трее иконку моего приложения. Видимо, система таскбара ещё не полностью стартовала в момент вывода. RegisterWindowMessage("TaskbarCreated") не работает - оно срабатывает только при перезапуске explorer'а. Поиск здесь и в MSDN не принёс результата. Нужна привязка вывода к полной инициализации таскбара. Может, кто-нибудь может подсказать решение проблемки?
Код (Text): HWND hWndTop=NULL; do{ hWndTop=FindWindow(_TEXT("Shell_TrayWnd"),NULL); hWndTop=FindWindowEx(hWndTop,NULL,_TEXT("TrayNotifyWnd"),NULL); hWndTop=FindWindowEx(hWndTop,NULL,_TEXT("SysPager"),NULL); hWndTop=FindWindowEx(hWndTop,NULL,_TEXT("ToolbarWindow32"),NULL); Sleep(200); }while(!hWndTop); Всё равно иногда зажёвывает. Я что-то делаю неправильно?
Может это глюк системы у меня тоже Касперский невсегда появляется. Может поробовать что-нибудь иное типа IsWindowVisible или подобное? Попробовать пересоздать иконку через 15 секунд после инициализации таскбара - тоже вариант, то есть после твоего кода добавить: sleep(10000); DestroyWindow(..) CreateWindow(..)