Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.12;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2002.08.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
3-35227
Daiz13
2002-07-22 11:10
2002.08.12
null+integer


3-35144
Devid
2002-07-20 20:41
2002.08.12
Простой да ужаса вопрос


1-35371
Dinara
2002-07-30 17:42
2002.08.12
По какому принципу Delphi самостоятельно подключает модули?


1-35378
Dinara
2002-07-30 21:15
2002.08.12
Как узнать, какие модули уже не используются в программе?


1-35258
Kran
2002-07-31 11:15
2002.08.12
Посимвольное присваивание Строк