Главная страница
    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.036 c
1-1092381671
_Михаил
2004-08-13 11:21
2004.08.29
Максимальное значение динамического массива Byte


14-1091910277
Алекс_
2004-08-08 00:24
2004.08.29
Где бы скачать новые компоненты FastNet?


14-1092235321
Лерик
2004-08-11 18:42
2004.08.29
Delphi


11-1080062398
nester
2004-03-23 20:19
2004.08.29
Как в КОЛ определить существует ли экземпляр объекта?


14-1092131844
вразлет
2004-08-10 13:57
2004.08.29
Прогнозы на будующее экономическое "процветание" Украины и России





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский