Что нового

[Мышь, клавиатура] Как обнаружить клики левой и правой кнопкой мыши с координатами

Max98

Новичок
Сообщения
45
Репутация
3
Всем привет. Помогите мне решить следующий вопрос. Мне необходимо "отлавливать" клики левой и правой кнопкой мыши и возвращать их координаты и соответственно, какая кнопка была нажата. Заранее спасибо. :IL_AutoIt_1:
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
#include <Misc.au3>

While 1
	If _IsPressed('01') Then MsgBox(0, 'Клик', 'Нажата левая кнопка мыши') ;Если нажата левая кнопка мыши
	If _IsPressed('02') Then MsgBox(0, 'Клик', 'Нажата правая кнопка мыши') ;Если нажата правая кнопка мыши
	If _IsPressed('1B') Then Exit ;Если нажата клавиша ESC, то выйти
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Zaramot,
Вы про координаты забыли. :smile:
Код:
#include <Misc.au3>

While 1
    If _IsPressed('01') Then ToolTip('ЛКМ' & @LF & MouseGetPos(0) & 'x' & MouseGetPos(1), 0, 0)
    If _IsPressed('02') Then ToolTip('ПКМ' & @LF & MouseGetPos(0) & 'x' & MouseGetPos(1), 0, 0)
	If _IsPressed('04') Then ToolTip('CКМ' & @LF & MouseGetPos(0) & 'x' & MouseGetPos(1), 0, 0)
    If _IsPressed('1B') Then Exit
	Sleep(10)
WEnd
 
Автор
M

Max98

Новичок
Сообщения
45
Репутация
3
Огромное спасибо! :laugh: Всё работает.
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Ещё есть такой вариант:
Код:
#include <WinAPIEx.au3>

While 1
	If _WinAPI_GetAsyncKeyState(0x01) = True Then MsgBox(0, 'Клик', 'Нажата левая кнопка мыши')
	If _WinAPI_GetAsyncKeyState(0x02) = True Then MsgBox(0, 'Клик', 'Нажата правая кнопка мыши')
	If _WinAPI_GetAsyncKeyState(0x1B) = True Then Exit MsgBox(0, 'Клик', 'Нажата клавиша ESC')
WEnd
 
Верх