Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Системное программирование и WinAPI > Расширение System Clock |
Автор: TGrey 17.6.2010, 12:55 | ||
Здравствуйте, что-то пригорело мне увеличить ширину системных часов в трее, добрался до них, пытался двигать - двигаются, но остальное не сдвигается относительно них. Потом пробовал двигать сам трей, тоже двигается, но не то, что мне надо. Почитал в инете, нашел что нужно отлавливать сообщения WM_USER+100 которое шлется часам, для того, чтобы узнать их размер. Попытался сам слать его, но часам до него нет дела, значит нужно возвращать результатом их размер? Сунул глобальный хук в систему на сообщение WM_USER+100, а оно почему-то не обрабатывается, не видит оно его, в Спайхх все сообщения проходят, а ДЛЛ 0 внимания. Можете подсказать в чем проблема и может, кто-то уже занимался подобной ерундой. Спасибо.
|
Автор: TGrey 17.6.2010, 18:11 |
Пока сидел, решил побаловаться, с ПУСКом, заделал свою кнопку и пытался вызвать оконную процедуру ПУСКа при сообщении от кнопки мыши, почти работает, но недостаток по прежнему в том, что Shell_TrayWnd сообщения никак не воспринимаются хуком. Я просмотрел и увидел, что на часы и на его парентов стоит одна и таже процедура окна, я так понял, что ее надо заменять на свою, а потом вызывать стандартную, но вопрос остается, как принимать хоть какие-то сообщения, если они вообще не воспринимаются от этих компонентов? |
Автор: GremlinProg 18.6.2010, 09:39 |
код не разбирал, но увидел работу с WH_GETMESSAGE, не думаю что такие сообщения часто укладываются в очередь, обычно вызывается простой SendMessage, так что наверное стоит заглянуть и в WH_CALLWNDPROC |
Автор: TGrey 19.6.2010, 21:33 |
Пробовал, дело в том, что у меня почему-то от ШеллТрея(если не ошибаюсь) вообще никакие сообщения не идут. Я сдвигаю к примеру часы или панель с иконками куда-то под экран- пытался ловить сообщения о кликах и т.д. Так ничего и не словилось, словилось только тогда, когда клацаю по кнопке со стролочкой, которая расскрывает список спрятаных иконок, тогда идет сообщение о клике мышой, а иначе - глухо. Как смогу еще раз проверю, может я пробовал с WH_GETMESSAGE. Но всеже если у кого есть еще идеи, буду рад. |
Автор: TGrey 20.6.2010, 00:13 | ||
В общем вот что получилось, если хукаю по КоллВндПрок, то при клике по иконкам приложений крашится Експлорер, при клике по ШеллТрею - ничего. Если хукаю по ГетМесседж, то при кликах в Ехплорере и при кликах в области часов(но не на часах) и по кнопке выдвинуть спрятанные иконки и по квадратику для выбора языка, сообщения проходят, а при клике по ШеллТрею - 0 внимания. Не хочет оно сообщения ловить. ------------------ Моя ошибка, выключил в Спайхх нужные сообщения в фильтре и не видел, что хукаю не то, что надо.
Работает, ловит, то что мне надо. Извиняюсь отдалился от темы, с ПУСКом, то работает, а насчет часов вопрос остается открытым. Сообщение WM_USER+100 по прежнему не ловятся от него. |
Автор: TGrey 25.6.2010, 12:09 |
Теперь на счет WM_USER+100, в другой теме было решено, что я использовал не верную структуру для хука WH_CALLWNDPROC, подставив нужную структуру, сообщение хукается нормально, но размер, что-то не горит изменятся=) |