1 (изменено: cubikoff, 2024-01-13 19:47:41)

Тема: AHK: Кликнуть левой удерживая правую клавишу мыши.

Здравствуйте. Помогите пожалуйста поправить макрос.
1)
-Зажать и удерживать правую клавишу мыши
*Пауза *мс
*Кликнуть левой клавишей мыши
*Пауза *мс
-Отпустить правую клавишу мыши.
*Пауза *мс.
*Два раза кликнуть левой клавишей мыши с интервалом 350мс.
(Цикл должен повторяться пока удерживается левая клавиша мыши.)
Включать, отключать по клавише X

#NoEnv
#Persistent

SetMouseDelay, 500
SendMode Input

global isEnabled = 0

x Up::
toggleScript()
Return

Toggle:=false

~$LButton::
if(global isEnabled)
While GetKeyState("LButton", "P")
	
	{
 Send {LButton down}
	Sleep, 20
 Send {LButton up}
	Sleep, 250
 Send {LButton down}
	Sleep, 20
 Send {LButton up}
	sleep, 350
Send {RButton down}
		Sleep, 200
Send {LButton down}
		Sleep, 20
Send {RButton up}
			
Send {RButton up}
	sleep, 200
	}
	
return
	
toggleScript()
{
global isEnabled = !(global isEnabled)
}


Работает, вроде
PS. Может кто подскажет, как сюда добавить условия-
Если нажата клавиша 1,2,3,4 то остановить выполнение цикла на клавиши мыши на 700 мс либо до следующего зажимания на лкм

2

Re: AHK: Кликнуть левой удерживая правую клавишу мыши.

Описание и код не сходятся. Я бы так написал:

SetMouseDelay, 500
SendMode Input
isEnabled = 0
Return

#If (isEnabled = 1)
$LButton::
Sleep, 100
While(GetKeyState("LButton", "P")){
 Send, {RButton Down}	; Зажать ПКМ.
 Sleep, 20
 Send, {LButton}	; Нажать ЛКМ.
 Sleep, 250
 Send, {RButton Up}	; Отпустить ПКМ.
 Sleep, 350
 Send, {LButton}	; Нажать ЛКМ.
 Sleep, 350
 Send, {LButton}	; Нажать ЛКМ.
}
Return
#If

x Up::
isEnabled := !isEnabled
Return
Win10x64, AHK v1.1.37.01 (Unicode 64-bit), AHK v2.0.17| AHK-Wiki | Переменные и выражения | RegEx101