Форум: "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