1

Тема: AHK: Как сделать режим автокликера?

Здравствуйте, мне нужно сделать возможность менять режимы автокликера. Но так как я никогда так не делал у меня понятное дело не получилось. Скажите в чём ошибка, и как её исправить.

CL1 = 0
CL2 = 1
Cl3 = 1

F1::
CL1 = 0
CL2 = 1
Cl3 = 1
return

F2::
CL1 = 1
CL2 = 0
Cl3 = 1
return

F3::
CL1 = 1
CL2 = 1
Cl3 = 0
return

*^~$LButton::
if CL1
   Return
MouseClick, left,,, 1
if CL2
   Return
MouseClick, left,,, 2
if CL3
   Return
MouseClick, left,,, 3
return

2

Re: AHK: Как сделать режим автокликера?

Я лично не использую команду 'MouseClick'. Думаю лучше посылать нажатия / зажатия клавиш обычной 'Send'.
Задача менять количество нажатий левой кнопки мыши (ЛКМ) по горячим клавишам F1-F3. Я всё верно понял?
Или нужен авто-кликер пока зажата ЛКМ?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

3

Re: AHK: Как сделать режим автокликера?

__Михаил__
Менять количество нажатий левой кнопки мыши (ЛКМ) по горячим клавишам F1-F3

4

Re: AHK: Как сделать режим автокликера?

__Михаил__ пишет:

Я лично не использую команду 'MouseClick'. Думаю лучше посылать нажатия / зажатия клавиш обычной 'Send'.

Почему?

5

Re: AHK: Как сделать режим автокликера?

Vsevolod

'Send' более гибкая на мой взгляд, т.к. отправляет любую клавишу, имеет возможность зажать и удерживать, позволяет делать любое кол-во нажатий.

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

6

Re: AHK: Как сделать режим автокликера?

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

SetBatchLines -1	; Максимальная скорость.

F1::	; Выключить кликер. ЛКМ будет работать стандартно.
F2::	; Установить двойное нажатие.
F3::	; Тройное нажатие.
SendCount := SubStr(A_ThisHotkey, 2)	; Количество нажатий в зависимости от нажатой F клавиши.
Hotkey, *vk1, Clicker, % (SendCount > 1 ? "On" : "Off")	; Установить перехват если режим 2 / 3 клика.
Return

Clicker:	; Метка, которая эмулирует 2 / 3 нажатия ЛКМ.
Send, % "{vk1 " SendCount "}"
Return
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

7

Re: AHK: Как сделать режим автокликера?

__Михаил__
А если мне нужны разные задержки между кликами, в разных режимах?

8

Re: AHK: Как сделать режим автокликера?

Vsevolod

Например какие?

Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101

9

Re: AHK: Как сделать режим автокликера?

Вот код с задержкой. На F2 200мс задержка между кликами, на F3 100мс.

SetBatchLines -1	; Максимальная скорость.

F1::	; Выключить кликер. ЛКМ будет работать стандартно.
F2::	; Установить двойное нажатие.
F3::	; Тройное нажатие.
SendCount := SubStr(A_ThisHotkey, 2)	; Количество нажатий в зависимости от нажатой F клавиши.
SendWait := (SendCount = 2 ? 200  : 100)	; Определяем задержку между кликами.
Hotkey, *vk1, Clicker, % (SendCount > 1 ? "On" : "Off")	; Установить перехват если режим 2 / 3 клика.
Return

Clicker:	; Метка, которая эмулирует 2 / 3 нажатия ЛКМ.
Loop, % SendCount	; Цикл, равный кол-ву кликов.
{
 Click			; Ещё один вариант клика, сокращённый.
 Sleep, % SendWait	; Задержка.
}
Return
Win10x64, AHK v1.1.37.01 (Unicode 64-bit) | AHK-Wiki | Переменные и выражения | RegEx101