Форум: "WinAPI";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
ВнизMouse hook Найти похожие ветки
← →
Владислав (2002-06-04 12:44) [0]Приветствую, Мастера.
Каким образом в хуке на события мыши узнать в какую сторону поворачивается колесо мыши?
← →
Song (2002-06-04 13:23) [1]WM_MOUSEWHEELUP
WM_MOUSEWHEELDOWN
← →
cdaDmitriy (2002-06-05 09:41) [2]поставь хук
поверни в одну сторону и посмотри значение
потом в другую
они ( значения ) отличаются : 120 и 65416 (-120)
( ? z я не уверен точно возможно для разных компонетов разные )
← →
Владислав (2002-06-05 10:25) [3]Мне нужно ловить сообщения мыши и в чужих программах. Для этого я создал хук. Если я не ошибаюсь, то ваши ответы предполагают обрабатывать сообщения от мыши, но я могу делать это только в своей программе.
Есть еще какие-нибудь соображения?
← →
cdaDmitriy (2002-06-05 11:37) [4]Владислав © ТЫ ЧИТАТЬ УМЕЕШЬ ?
поставь хук
поверни в одну сторону и посмотри значение
потом в другую
← →
Владислав (2002-06-05 12:26) [5]cdaDmitriy, я умею, а ты?
Я уже поставил хук и посмотрел, поэтому вопрос задаю.
← →
cdaDmitriy (2002-06-05 17:26) [6]так в чем вопрос я не понял
← →
Кто-то из толпы2 (2002-06-05 23:35) [7]2 Владислав
Ты сначала разберись с хуками вообще и WH_MOUSE в частности и тогда поймешь, что тебе дело говорят. А пока иди читать хелп. Только внимательно читай, так сказать от корки до корки (читать ты судя по всему вроде умеешь).
← →
Владислав (2002-06-06 07:09) [8]> cdaDmitriy © (05.06.02 17:26)
"так в чем вопрос я не понял"
Каким образом в хуке на события мыши узнать в какую сторону поворачивается колесо мыши?
Это информация из хука. Колесо по очереди поворачивается то в одну то в другую сторону. Нет никакой разницы.
Message (wParam): WM_MOUSEWHEEL; X = 781; Y = 379; WND = 722308; Hit Test Code = 0; Extra Info = 0
Message (wParam): WM_MOUSEWHEEL; X = 781; Y = 379; WND = 722308; Hit Test Code = 0; Extra Info = 0
Message (wParam): WM_MOUSEWHEEL; X = 781; Y = 379; WND = 722308; Hit Test Code = 0; Extra Info = 0
Message (wParam): WM_MOUSEWHEEL; X = 781; Y = 379; WND = 722308; Hit Test Code = 0; Extra Info = 0
Я понимаю, что узнать в какую сторону крутится колесо мыши можно в обработчике сообщений Windows, например:
procedure WMMouseWheel(var Message: TMessage); message WM_MOUSEWHEEL;
В таком обработчике действительно можно это определить, но мне надо в хуке.
>Кто-то из толпы2 (05.06.02 23:35)
А еще какая-нибудь полезная информация есть?
Мастера, подскажите пожалуйста.
← →
Almaz (2002-06-07 00:37) [9]
> Владислав © (06.06.02 07:09)
Проблема решается но только в Win2k. В Win2k в hook"e lParam указывает не на структуру TMouseHookStruct а на структуру MouseHookStructEx. Правда, в D5 она не описана, так что придется самому:
type
TMouseHookStructEx = packed record
MouseHookStruct: TMouseHookStruct;
mouseData: DWORD;
end;
PMouseHookStructEx = ^TMouseHookStructEx;
function Hook(Code: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
if Code >= 0 then
begin
if wParam = WM_MOUSEWHEEL then
begin
if ShortInt(HIWORD(PMouseHookStructEx(lParam)^.MouseData)) > 0 then
MessageBox(0, "Wheel UP", "Info", MB_OK) else
MessageBox(0, "Wheel DOWN", "Info", MB_OK);
end
end;
Result := CallNextHookEx(Data^.OldHook, Code, wParam, lParam)
end;
Удачи.
← →
Владислав (2002-06-07 06:29) [10]> Almaz © (07.06.02 00:37)
Огромное спасибо. К сожалению, в моей справке MS SDK это не описано. Наверное нужно ее как-то обновить :).
Спасибо всем за ответы.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.08.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c