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

Вниз

Как отследить нажатия левой и правой кнопки мыши   Найти похожие ветки 

 
MIGUR   (2004-07-15 01:34) [0]

Привет всем. Как отследить нажатия левой и правой кнопки мыши, кто знает помогите очень нужно


 
P.N.P. ©   (2004-07-15 01:51) [1]

Что, одновременное нажатие левой с правой?!?


 
Palladin ©   (2004-07-15 01:54) [2]

Надо внимательно следить за рукой...


 
MIGUR   (2004-07-15 02:02) [3]

>Что, одновременное нажатие левой с правой?!?

Нет, нужно сделать так чтобы в одной переменной  было кол-во нажатий левой кнопки, а в другой правой


 
P.N.P. ©   (2004-07-15 02:08) [4]

Тогда вешаем хук...

var
 HookedAlready: Boolean;
 MyHook: HHook;
{***********  HOOK -start- ******************}

function LowLevelMouseProc (Code: integer; wParam: Word;lParam: Longint): Longint;stdcall;
begin
{WM_LBUTTONDOWN - левая кнопка, WM_RBUTTONDOWN - правая кнопка}
if (code = HC_ACTION)and(TMsg(Pointer(lParam)^).message = WM_LBUTTONDOWN) then
{- Do Something -}
 result := CallNextHookEx(MyHook, Code, wParam, lParam);
end;

procedure SetHook;
begin
 if HookedAlready then
   exit;
 MyHook := SetWindowsHookEx(WH_GETMESSAGE  , @LowLevelMouseProc , HInstance, GetCurrentThreadId);
 HookedAlready := True;
end;

procedure UnHookHook;
begin
if HookedAlready =true then
 UnHookWindowsHookEx(MyHook);
 HookedAlready := False;
end;

{***********  HOOK -end-  ******************}
procedure TForm1.FormCreate(Sender: TObject);
begin
SetHook;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
UnHookHook;
end;


 
Piter ©   (2004-07-15 02:38) [5]

Удалено модератором
Примечание: Офтопик и модераторы сами разберутся


 
Palladin ©   (2004-07-15 03:19) [6]

Удалено модератором


 
Palladin ©   (2004-07-15 03:22) [7]

Удалено модератором


 
tamroF   (2004-07-15 03:52) [8]

Удалено модератором


 
KADAN ©   (2004-07-15 04:14) [9]

MIGUR, если тебе надо отследить клики по форме - то в событии OnMouseDown (формы) напиши вот это:
 if ssLeft in Shift then inc(CountLeft);
 if ssRight in Shift then inc(CountRight);

не забудь что, переменные CountLeft и CountRight должны быть глобальными и обнулены сначала.


 
CHES ©   (2004-07-15 08:44) [10]

Кстати, если нужно отслеживать нажатия во всей системе, то hook надо реализовать в dll


 
AlexZ   (2004-07-16 00:07) [11]

И ещё, можно обрабатывать в оконной функции сообщения:
WM_LbuttonDown
WM_RButtonDown



Страницы: 1 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.263 c
1-1092146582
andy
2004-08-10 18:03
2004.08.29
размещение ListView из DLL на форме главного окна


1-1092318620
ilya@scsc.ru
2004-08-12 17:50
2004.08.29
Eсть ли компоненты для генерации баркодов в различных кодировках?


14-1092235635
ghg
2004-08-11 18:47
2004.08.29
вопрос по C++


1-1092648096
dimon1979
2004-08-16 13:21
2004.08.29
Гиперссылка


1-1092138257
Pul
2004-08-10 15:44
2004.08.29
Invalid floating point operation