Тема: AHK: HotKey Как на одну кнопку сделать 2 действия по очередна?
Как сделать на одну кнопку 2,3,4 действия, чтобы при нажатии один раз он ждал нажатие второй раз и так далее?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как сделать на одну кнопку 2,3,4 действия, чтобы при нажатии один раз он ждал нажатие второй раз и так далее?
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
Он перескакивает только при одном нажатии, двойном нажатии и тройном нажатии, а мне надо чтобы 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
#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
Спасибо.
serzh82saratov
А есть литература по вот этому "(I := !I || I = 3 ? 1 : ++I)"?
Если есть скиньте ссылку.
http://www.script-coding.com/AutoHotkey … 46.07.html — ищите "Тернарный условный оператор".
#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
А не подскажите как зациклить первые две фазы?
В смысле первые две метки?
#UseHook
1:: Gosub % "One" (I := !I || I = 2 ? 1 : ++I)
One1:
SendInput, {2}{3}
return
One2:
SendInput, {4}{5}
return
serzh82saratov ну т.е чтоб первая и вторая метка были в бесконечном цикле, при нажатии так же переходили на след
Ну а в этом коде как?
Ну а в этом коде как?
При нажатии 1 отправляет 2,3 1 раз, а как сделать чтоб отправляло бесконечно до след нажатия где уже будет бесконечно отправляться 4,5 и тд
#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
serzh82saratovСпасибо большое.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться