![]() |
Вопросик .. для наших Win32 гуру [solved]
Второй день мучаюсь и не могу найти нормальное решение проблемы.
Так вот: 1) есть таскбар и на таскбаре кнопки 2) возьмем к примеру кнопку окна stuff http://img380.imageshack.us/img380/49/1la8.jpg 3) суть проблемы: нужно получить хэндл окна, которому принадлежит кнопка на таскбаре, над которой в данный момент курсор мыши http://img164.imageshack.us/img164/7610/2sf2.jpg Если у кого есть какие-нибудь идеи, скидывайте сюда, язык программирования не имеет значения. зы: WindowFromPoint и ChildWindowFromPoint не помогли |
Ааа, ясно)
Тогда нужно перехватывать события на кнопке. В часности wm_mousemove, wm_setcursor. Кстати, дло таких исследований удобно использовать утилиту WinSight32 из комплекта Delphi. Покажет все окна, события. |
топикстартер предлагал сэмулировать нажатие мыши и получить хендл текущего активного окна, потом вернуть окна обратно
|
Цитата:
Цитата:
Цитата:
Имхо кнопки на таскбаре не реализованы как кнопки. Spy++ видит только ToolbarWindow32. Утром созрело возможное решение проблемы - tooltips_class32: http://img216.imageshack.us/img216/4701/untitledkz6.jpg Сейчас ищу возможность узнать заголовок окна, а потом уж - FindWindow :) |
Всем спасибо, проблему решил.
Решение: 1) посылаю окну таскбара сообщение TB_GETBUTTON для того чтоб получить структуру TBBUTTON которая описывает кнопку на таскбаре. 2) Хэндл окна - это первые четыре байта поля dwData структуры TB_GETBUTTON. Мля, а в мсдн про это ничего не сказано... Если нужны сорцы, могу выложить =) |
Цитата:
зы. в мсдн вообще мало чего полезного сказано)) |
Цитата:
|
Кстати, ничё такая статейка "Дреcсированные окна".
_http://www.xakep.ru/magazine/xa/086/116/1.asp |
Дабы расставить все точки над ё, привожу кусок кода решающий часть данной проблемы (извините за английские комменты)
Код:
// find Windows Taskbar (Note: works under XP and 2k3)Код:
// variables that needed to open taskbar (explorer) process |
Вообщем-то это уже недокументированные возможности Gui :)
|
| Время: 14:32 |