Страница: 1 | 2 |
Вопрос: Как узнать направление скролла мышки вне формы
Добавлено: 09.02.10 22:27
Автор вопроса: Just
vb6
xp
Ставлю хук системы (с помощью SetWindowsHookEx)и отлавливаю сообщение WM_MOUSEWHEEL, но вот направление скролла удается получать только с хука формы (с помощью CallWindowProcA)
Как установить хук на всю систему и при этом получать направление скролла?
Кто может помочь - откликнитесь!
Заранее спасибо!
Ответы
Всего ответов: 18
Номер ответа: 1
Автор ответа:
SSTREGG
Вопросов: 3
Ответов: 64
Профиль | | #1
Добавлено: 10.02.10 15:22
написать dll.
Номер ответа: 2
Автор ответа:
Just
Вопросов: 4
Ответов: 330
Профиль | | #2
Добавлено: 10.02.10 16:06
а конкретней не знаешь случаем как это сделать?
я создавал класс, но подозреваю что dll делать это уже по части оптимизации кода...
Номер ответа: 3
Автор ответа:
SSTREGG
Вопросов: 3
Ответов: 64
Профиль | | #3
Добавлено: 10.02.10 16:43
нужно написать dll (можно на C++) - только так можно установить глобальный хук... может в vb6 есть какие-то другие методы, но я не знаю. могу только на C# помочь
Номер ответа: 4
Автор ответа:
Just
Вопросов: 4
Ответов: 330
Профиль | | #4
Добавлено: 10.02.10 17:05
скорей всего ты прав! наверное поэтому я нашел упоминание о глобальном хуке и направления скролла только на си )))
как я понял раз нужен си - значит нада лезть уже в ядро системы...
SSTREGG можешь помочь с dll'ой?
Номер ответа: 5
Автор ответа:
SSTREGG
Вопросов: 3
Ответов: 64
Профиль | | #5
Добавлено: 10.02.10 17:10
в ядро системы лезть не надо ) на C++ я не напишу, тока на C# (а это .NET). Если надо отлавливать только WM_MOUSEWHEEL, то могу написать на C# и экспортировать функцию (чтобы можно было использовать на VB6)
Номер ответа: 6
Автор ответа:
Just
Вопросов: 4
Ответов: 330
Профиль | | #6
Добавлено: 10.02.10 17:19
движение скролла я могу отловить (и по всей системе и в отдельной проге), а вот направление... с этим проблемка есть... )
SSTREGG спасибо большое! но с этим у меня пока проблем нет )
Номер ответа: 7
Автор ответа:
Just
Вопросов: 4
Ответов: 330
Профиль | | #7
Добавлено: 10.02.10 17:39
пока я для получения направления сколла использую сл код:
(если у кого есть мысли как по другому получить направление скролла в системе - пишите)
p.s. конечно изврат устанавливать фокус на окно каждый раз при использовании колесика мышки... но пока лучше не нашел способа
Номер ответа: 8
Автор ответа:
SSTREGG
Вопросов: 3
Ответов: 64
Профиль | | #8
Добавлено: 10.02.10 18:06
т.е. направление скролла? вверх или вниз, или что-то другое?
Номер ответа: 9
Автор ответа:
Just
Вопросов: 4
Ответов: 330
Профиль | | #9
Добавлено: 10.02.10 18:22
да. вверх или вниз.
есть еще альтернатива делать хук на всю сисетму и отловив сообщение WM_MOUSEWHEEL (движение скролла) активизировать свою прогу ))
нашел по поводу скролла в си, может кого на мысль наведет (у меня уже нет мыслей)
const int WM_VSCROLL = 0x0115;
const int WM_HSCROLL = 0x0114;
MSH_MOUSEWHEEL
zDelta = (int) wParam; // wheel rotation
xPos = LOWORD(lParam); // horizontal position of pointer
yPos = HIWORD(lParam); // vertical position of pointer
Номер ответа: 10
Автор ответа:
SSTREGG
Вопросов: 3
Ответов: 64
Профиль | | #10
Добавлено: 10.02.10 18:26
WM_VSCROLL и WM_HSCROLL это не те сообщения, посмотри в MSDN. Ты же вроде определяешь скролл (7 пост): -1 = вниз; 1 = вверх.
p.s. MSH_MOUSEWHEEL - это вроде для Win95.
Номер ответа: 11
Автор ответа:
Just
Вопросов: 4
Ответов: 330
Профиль | | #11
Добавлено: 10.02.10 18:40
WM_VSCROLL, WM_HSCROLL - это что скроллы формы? ))
я понемаю проблему так:
когда ставишь системный хук там просто нет возможности получить направление скролла мышки но если ставить хук на свою форму там такая фозможность есть!
вот я и ищу способ желательно из vb (без dll) получить направление колесика мышки из любого окна (по всей системе)
Номер ответа: 12
Автор ответа:
SSTREGG
Вопросов: 3
Ответов: 64
Профиль | | #12
Добавлено: 10.02.10 18:52
без dll глобальный хук не поставить.
Номер ответа: 13
Автор ответа:
Just
Вопросов: 4
Ответов: 330
Профиль | | #13
Добавлено: 10.02.10 19:00
все к тому и сводится... но есть одно но!
без dll я могу же отлавливать по всей систему WM_MOUSEWHEEL и тд
в любом случае спасибо за помощь!
буду искать тогда dll или дальше щелкать по колесику шоб отловить направление ))
если у кого есть мысли или что еще лучше исходник ))) - пишите!
Номер ответа: 14
Автор ответа:
SSTREGG
Вопросов: 3
Ответов: 64
Профиль | | #14
Добавлено: 10.02.10 19:06
без dll я могу же отлавливать по всей систему WM_MOUSEWHEEL и тд
ага, через ж*пу
Номер ответа: 15
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #15
Добавлено: 10.02.10 21:03
Что значит не поставить глобальный хук без dll. Я для плеера написал дополнительную прогу, которая ловит WM_MOUSEWHEEL и отправляет плееру сообщения.
Ты делай лоулевел хук.