1 (изменено: CD_MyAcO, 2020-10-27 22:14:06)

Тема: AHK: При нажатии 2 клавиш миши выполняется цикл

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

LButton & RButton::
click
return

2 (изменено: Botsy, 2020-10-27 22:44:04)

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO https://www.autohotkey.com/docs/Hotkeys.htm Мб тут есть ответ.

GD

3 (изменено: CD_MyAcO, 2020-10-27 22:53:49)

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

Botsy
Нашёл ~ поставить затем будет работать всё хорошо. Но оно не работает как с клавиатурой, пока зажата скрипт работает. Что с этим поделать?

4

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO Я не понимаю, не понятно объясняете.

GD

5

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

Botsy
Вот цикл работает, но он работает только раз.

~LButton & RButton::
click
return

Если сделать такой же, только с клавиатурой. То он будет работать пока зажата кнопка клавиатуры(потому что когда зажата кнопка клавиатуры то клавиша подаёт 1 клик, затем немерено пока не отпуститься клавиша. А в мышке только 1 раз то есть нажатый, и отпущенный.) Как это исправить?

Numpad0::
click
return

6

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO Мб так получиться.


~LButton & RButton::
loop
{
click
}
return
GD

7

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

Botsy Тогда зациклиться на 1 клике и будет работать бесконечно. Мне нужно пока зажата - работает, отпустили - не работает.
Я пробовал такой код. Но я не знаю как ставить маяки(Когда доходит до кода, возвращает туда где поставлен маяк. В этом случаи если после клика стоит код(хз как там он пишеться) то он возвращается до маяка под названием которое указанное, который ищет в коде.)

~LButton & RButton::
While GetKeyState("LButton")
click
return

К примеру с маяком

~LButton & RButton::
1:
While GetKeyState("LButton")
{
click
mayak, 1 
}
return

8

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

Botsy Я где то находил маяки на просторах интернета, но давно их не использовал. Поэтому забил как они работают.

9 (изменено: Botsy, 2020-10-27 23:16:53)

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO А так ? Если не поможет, то я больше не знаю.


~LButton & RButton::

While GetKeyState("LButton")
{
click ; или Send {LButton}
}
return
GD

10

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

Botsy Это тот же цикл что и я написал.

11

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO возможно нельзя повторно использовать клавишу, которая используется для хоткея.

GD

12

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

Botsy Метки я нашёл в интернете, но скрипт всё равно не работает пока зажата клавиша.

~LButton & RButton::
1:
While GetKeyState("LButton")
{
click
Goto, 1
}
return

13

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

Всё, я уже сам разобрался.

~LButton & RButton::
sleep 1000
GetKeyState("LButton")
loop
{
if GetKeyState("LButton", "P")
{
if GetKeyState("RButton", "P")
click
else
break
}
else
break
}
return

14 (изменено: qqlexa, 2020-10-28 15:46:02)

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO, делайте отступы для лучшего прочтения:


~LButton & RButton::
sleep 1000
GetKeyState("LButton")
loop
{
	if GetKeyState("LButton", "P")
	{
		if GetKeyState("RButton", "P")
			click
		else
			break
	}
	else
		break
}
return

Преподователи советуют использовать скобки даже на одну строку, в случае, если нужно будет дописать - вы не сломаете ничего, кроме тела условного оператора:


~LButton & RButton::
sleep 1000
GetKeyState("LButton")
loop
{
	if GetKeyState("LButton", "P")
	{
		if GetKeyState("RButton", "P")
		{
			click
		}
		else
		{
			break
		}
	}
	else
	{
		break
	}
}
return

Так же есть практика, когда открываете скобку на той же строчке:


~LButton & RButton::
sleep 1000
GetKeyState("LButton")
loop {
	if GetKeyState("LButton", "P") {
		if GetKeyState("RButton", "P") {
			click
		}
		else {
			break
		}
	}
	else {
		break
	}
}
return

Но это уже вкусовщина.

15 (изменено: CD_MyAcO, 2020-10-28 16:46:14)

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

qqlexa
Я писал ранее в блокноте
Уже скачал полноценную нормальную программу для кодинга ахк

16

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO, независимо от среды программирования стоит обращать на стиль кода.

17

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

qqlexa Но ведь если в блокноте кодить, надо раз 20 отступов делать для 1 строки. И это время затратно.

18

Re: AHK: При нажатии 2 клавиш миши выполняется цикл

CD_MyAcO, Табуляция.