Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Вниз

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

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

Форум: "WinAPI";
Текущий архив: 2004.08.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.037 c
14-1092201173
vov@n
2004-08-11 09:12
2004.08.29
Прогораммироавние в Delphi


1-1092395892
NikeOLD
2004-08-13 15:18
2004.08.29
Отловить изменение ширины колонки ListView


1-1092653822
Makssim
2004-08-16 14:57
2004.08.29
Как присвоить stringовой переменной сегодняшнюю дату?


14-1091853291
vidiv
2004-08-07 08:34
2004.08.29
Лицензионное ПО


14-1092215269
RustiK
2004-08-11 13:07
2004.08.29
StringGrid, DBGrid или просто Grid на WinAPI ...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский