1

Тема: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

Как сделать на одну кнопку 2,3,4 действия, чтобы при нажатии один раз он ждал нажатие второй раз и так далее?

2

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?


1:: MultiDown("One") 
+2:: MultiDown("Shift_Two") 

MultiDown(Name, I = 0) { 
	Key := RegExReplace(A_ThisHotkey, "S)[~\*\^\+\$<>!#]")
	While !ErrorLevel && ++I { 
		KeyWait, %Key%
		KeyWait, %Key%, D T0.2
	} 
	Try Gosub % Name I
	Catch
		MsgBox, 16, , % "Имя: " Name "`nНажал: " I " раз", 0.8
}

One1:
One2:
One3:
Shift_Two4:
	MsgBox, 64, , % A_ThisLabel, 0.4
	Return
	
Escape:: ExitApp
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

3 (изменено: DaGer, 2018-07-30 03:35:47)

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

Он перескакивает только при одном нажатии, двойном нажатии и тройном нажатии, а мне надо чтобы  1 раз нажал он выполнил одно действие ждет повторного нажатия,
второй раз нажал делает второе действие. И можно как-то по проще сделать код а то я не понимаю что к чему.


1:: MultiDown("One") 
+2:: MultiDown("Shift_Two") 

MultiDown(Name, I = 0) { 
	Key := RegExReplace(A_ThisHotkey, "S)[~\*\^\+\$<>!#]")
	While !ErrorLevel && ++I 
	{
		KeyWait, %Key%
		KeyWait, %Key%, D T0.2
	}
	Try Gosub % Name I
	Catch
		MsgBox, 16, , % "Имя: " Name "`nНажал: " I " раз", 0.8
}

One1:
SendInput, {2}{3}
return
One2:
SendInput, {4}{5}
return
One3:
SendInput, {6}{7}
return

4

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

#UseHook
1:: Gosub % "One" (I := !I || I = 3 ? 1 : ++I)

One1:
	SendInput, {2}{3}
	return
One2:
	SendInput, {4}{5}
	return
One3:
	SendInput, {6}{7}
	return
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

5

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

Спасибо.

6

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

serzh82saratov
А есть литература по вот этому "(I := !I || I = 3 ? 1 : ++I)"?
Если есть скиньте ссылку.

7

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

http://www.script-coding.com/AutoHotkey … 46.07.html — ищите "Тернарный условный оператор".

8

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

serzh82saratov пишет:
#UseHook
1:: Gosub % "One" (I := !I || I = 3 ? 1 : ++I)

One1:
	SendInput, {2}{3}
	return
One2:
	SendInput, {4}{5}
	return
One3:
	SendInput, {6}{7}
	return

А не подскажите как зациклить первые две фазы?

9

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

В смысле первые две метки?

#UseHook
1:: Gosub % "One" (I := !I || I = 2 ? 1 : ++I)

One1:
	SendInput, {2}{3}
	return
One2:
	SendInput, {4}{5}
	return 
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

10

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

serzh82saratov ну т.е чтоб первая и вторая метка были в бесконечном цикле, при нажатии так же переходили на след

11

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

Ну а в этом коде как?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

12

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

serzh82saratov пишет:

Ну а в этом коде как?

При нажатии 1 отправляет 2,3 1 раз, а как сделать чтоб отправляло бесконечно до след нажатия где уже будет бесконечно отправляться 4,5 и тд

13

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

#UseHook

1:: 
	Try SetTimer % "One" I, Off
	SetTimer % "One" (I := !I || I = 2 ? 1 : ++I), 1
	return	
	
One1:
	SendInput, {2}{3}
	return
	
One2:
	SendInput, {4}{5}
	return
По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

14

Re: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?

serzh82saratovСпасибо большое.