Автор
|
Тема: Как можно определить номер кнопки моего окна в TaskBar'e?
|
SUnteXx |
опубликован 17-01-2002 12:27 MSK
Hello, all!Как можно определить номер кнопки моего окна в TaskBar'e? Пробовал по тексту окна, текста не дает, пробовал по тексту тултипа - них не получилось. Может у кого идеи есть?
|
ADK
|
опубликован 17-01-2002 12:43 MSK
Панель Задач - это, как известно, Tab Control со стилем Buttons. Поэтому логично юзать функции таба. Если не получится из-за того, что разные процессы, можно попробовать проникнуть в explorer.exe через хуки. К примеру, через WH_SHELL можно отследить щелчок по кнопке на Панели Задач, и пробраться к таб контролу... |
SUnteXx
|
опубликован 18-01-2002 13:38 MSK
Начнем с того, что ТаскБар - тулбар (по крайней мере в ХР)! Посмотрите его класс. ToolbarWindow32!Мне надо определить кнопку своего окна в таскбаре без каких-либо нажатий. Пробовал получить инфу о кнопку, ничего не возвращает, пробовал получить текста кнопок, нифига, пробовал уже по тултипам определять, тоже отправили на хутор погулять:( Может у кого есть идеи? |
ADK
|
опубликован 18-01-2002 14:00 MSK
Конечно, на таскбаре есть пара тулбаров, но где копки задач - это SysTabControl32, по крайней мере везде, кроме XP (там не смотрел). |
SUnteXx
|
опубликован 20-01-2002 12:22 MSK
2ADK: Вот смотри как приходится искать TaskBar:(---------------------------------------------------------------------------- HWND hWnd = FindWindow("Shell_TrayWnd", NULL); HWND hWnd1 = FindWindowEx(hWnd, NULL, "ReBarWindow32", NULL); hWnd = FindWindowEx(hWnd1, NULL, "MSTaskSwWClass", NULL); hWnd1 = FindWindowEx(hWnd, NULL, "ToolbarWindow32", "Running Applications"); ---------------------------------------------------------------------------- Вопрос в силе:) Как определить номер кнопки моей проги в таскбаре? |
Flex Ferrum
|
опубликован 20-01-2002 12:58 MSK
А ты попробуй прицепить хук к этому окну и уже им определять номер твоей кнопки. И вообще управлять таскбаром. Может поможет :))) Вообще, для некоторых мессаг есть ограничение на использование между процессами. Тоесть, ты можешь их посылать только окнам своего процесса. Может быть это как раз из той самой серии... |
Kostik
|
опубликован 20-01-2002 07:11 MSK
Я присоединяюсь к вопросу.По завершению работы программы очень часто остаётся пустая кнопка. Хотелось-бы контролиравать этот процесс. ... |
SUnteXx
|
опубликован 21-01-2002 11:32 MSK
Что, нет ни у кого соображений по этому поводу? |
ADK
|
опубликован 21-01-2002 12:32 MSK
Я тебе говорил, сделай хук. Хотя бы затем, чтобы работать в том же процессе и потоке даже. Там всё должно заработать. |
Kostik
|
опубликован 21-01-2002 13:43 MSK
Не знаю как кто, но я пользую хуки в самых крайних случаях, т.к. это возвращение к WIN16. А это само по себе западло.Было-бы здорово еслиб у кого-нибудь возникла другая идея. |
ADK
|
опубликован 21-01-2002 13:52 MSK
Хуки, конечно, говённая вещь, но насчёт win16 ты загнул. Я просто говорю о любом способе внедрения внутрь explorer.exe |
SUnteXx
|
опубликован 23-01-2002 12:18 MSK
Может еще как-нить можно? Или придется заводить отдельную глобальную переменную, в которой будет храниться номер кнопки моей проги, который будет определяться путем узнавания количества кнопок в ТаскБаре при загрузке проги, ведь количество будет означать номер моей кнопки:). |
One
|
опубликован 23-01-2002 13:02 MSK
Глянь мой топик Десктоп, я там по этому поводу прошелся |