Что нового

Нажатие на кнопку мышки заменяем определённой клавишей клавиатуры.

Detka.i.alex

Новичок
Сообщения
12
Репутация
0
Добрый день.
Возникла потребность написать программку которая при нажатии на кнопки мыши(Средняя и две боковые) блокировала их и нажимала на кнопки клавиатуры(num).

Нашёл темку с функциями:
Код:
$MOUSE_MOVE_EVENT ;Движение мышки.
$MOUSE_PRIMARYDOWN_EVENT ;Зажатие главной кнопки.
$MOUSE_PRIMARYUP_EVENT ;Отжатие главной кнопки.
$MOUSE_PRIMARYDBLCLK_EVENT ;Двойное нажатие главной кнопки.
$MOUSE_SECONDARYDOWN_EVENT ;Зажатие вторичной кнопки.
$MOUSE_SECONDARYUP_EVENT ;Отжатие вторичной кнопки.
$MOUSE_SECONDARYDBLCLK_EVENT ;Двойное нажатие вторичной кнопки.
$MOUSE_WHEELDOWN_EVENT ;Зажатие средней кнопки.
$MOUSE_WHEELUP_EVENT ;Отжатие средней кнопки.
$MOUSE_WHEELDBLCLK_EVENT ;Двойное нажатие средней кнопки.
$MOUSE_WHEELSCROLL_EVENT ;Прокручивание коллёсика средней кнопки.
$MOUSE_XBUTTONDOWN_EVENT ;Зажатие боковой кнопки (обычно это кнопки навигации).
$MOUSE_XBUTTONUP_EVENT ;Отжатие боковой кнопки.
$MOUSE_XBUTTONDBLCLK_EVENT ;Двойное нажатие боковой кнопки.

А как с ними работать не пойму.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Re: [Как?]Нажатие на кнопку мышки заменяем определённой клавишей клавиатуры.

Тебе нужна функция _IsPressed

Код:
#Include <Misc.au3>
While 1
	if _IsPressed("04") Then Send("^a")
	sleep(100)
Wend


Если нажали среднюю клавишу мыши, то кликнуть CTRl+a на клавиатуре.
 
Автор
D

Detka.i.alex

Новичок
Сообщения
12
Репутация
0
Re: [Как?]Нажатие на кнопку мышки заменяем определённой клавишей клавиатуры.

Спасибо. А не подскажете какой код у боковых кнопок на мышке там стрелки вправо и лево.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Re: [Как?]Нажатие на кнопку мышки заменяем определённой клавишей клавиатуры.

Нужно посмотреть в справке по функции _IsPressed.
Возможно:
05 Windows 2000/XP: X1 mouse button
06 Windows 2000/XP: X2 mouse button

но у меня мышка трехкнопочная проверить не могу.
 
Автор
D

Detka.i.alex

Новичок
Сообщения
12
Репутация
0
Re: [Как?]Нажатие на кнопку мышки заменяем определённой клавишей клавиатуры.

Ещё интересен такой момент есть приложение надо перехватить нажатие клавишь и заменить их своими либо во все не дать им сделать предусмотренное действие.
 

Suppir

Продвинутый
Сообщения
967
Репутация
62
Re: [Как?]Нажатие на кнопку мышки заменяем определённой клавишей клавиатуры.

Примерно так:


Код:
;~ Если нажали CRTL+c, то выполнить функцию doit
HotKeySet("^c", "doit")

;~ просто ожидание нажатия
while 1
	sleep(100)
WEnd


Func doit()
;~ 	послать другой хоткей
	Send("^g")
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Как?]Нажатие на кнопку мышки заменяем определённой клавишей клавиатуры.

Suppir [?]
Тебе нужна функция _IsPressed
Вроде автор написал:
[?]
Возникла потребность написать программку которая при нажатии на кнопки мыши(Средняя и две боковые) блокировала их и нажимала на кнопки клавиатуры

Detka.i.alex [?]
надо перехватить нажатие клавишь и заменить их своими либо во все не дать им сделать предусмотренное действие
Приведённые переменные в первом сообщении это события в «MouseSetOnEvent - Обработка событии мышки», там есть пример использования.


Добавлено:
Сообщение автоматически объединено:

Suppir [?]
А где тут улавливание нажатии кнопки мышки? :smile:
 
Автор
D

Detka.i.alex

Новичок
Сообщения
12
Репутация
0
CreatoR
я потому примеру не могу что то понять. Вот например у меня есть средняя кнопка на мыши она в игре двигает карту когда зажата мне это надо отключить и заменить нажатием на кнопку 8 на доп клавиатуре.

И ещё в игре есть такое сочетание клавишь alt+q+q я не могу их воспроизвести
Код:
if _IsPressed("51") Then Send("!qq")

Вот это не работает. наверное как то надо поставить задержку на кнопку альт, пока не понял как
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Detka.i.alex [?]
у меня есть средняя кнопка на мыши он в игре двигает карту
В игре наврядли получится, там обычно защита против этого стоит.

Но можно попробовать:

Код:
#include <MouseSetOnEvent.au3>

$hGame = WinGetHandle("Заголовок игры")
_MouseSetOnEvent($MOUSE_WHEELUP_EVENT, "_MouseWheelUp_Event", "", "", $hGame, 1)

Func _MouseWheelUp_Event()
	Send("{NUMPAD8}")
EndFunc



как то надо поставить задержку на кнопку альт
А если так:
Код:
Send("{ALTDOWN}qq{ALTUP}")
 
Автор
D

Detka.i.alex

Новичок
Сообщения
12
Репутация
0
CreatoR

Оно работает но не коректно действие происходит многократно мышка не двигаеться.

А насчёт этого
Код:
Send("{ALTDOWN}qq{ALTUP}")


То альт зажимаеться а вот не чего не происходит.
 
Верх