1 (изменено: Remix55556, 2016-09-02 23:54:16)

Тема: Прерывание повторяющегося цикла?

Вот я написал простенький скриптик, который при удержании клавиши 8 будет бесконечно нажимать 1234, с интервалом в 100 млс. Скажите что надо сюда добавить, или как его изменить чтобы при отпускании клавиши 8, скрипт останавливался не на 4 всегда, а там где успеет? чтобы иными словами цикл мог прерваться раньше чем будет выполнен полностью до конца?


vk38::
Loop, 1
send, {vk31 down}
Sleep, 100
Send, {vk31 up}
Sleep, 100
Loop, 1
send, {vk32 down}
Sleep, 100
Send, {vk32 up}
Sleep, 100
Loop, 1
send, {vk33 down}
Sleep, 100
Send, {vk33 up}
Sleep, 100
Loop, 1
send, {vk34 down}
Sleep, 100
Send, {vk34 up}
Sleep, 100
Loop, 1
Return

Я пытался довписать команду break для этой цели, в конце каждой клавиши, не получается, скриптовый язык AHK меня не понимает).

2 (изменено: Flasher, 2016-09-02 00:32:55)

Re: Прерывание повторяющегося цикла?

Вбиваем тут ключевые слова удерж*, выставляем "Только в заголовках тем" и два раздела AutoHotkey, выводим результаты.

3

Re: Прерывание повторяющегося цикла?

Flasher, эту ссылку может видеть только автор поиска!

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

4

Re: Прерывание повторяющегося цикла?

Хм. А я думал любой залогиненный. Тогда исправляю.

5

Re: Прерывание повторяющегося цикла?

Flasher
Поиск не дал результатов...

6

Re: Прерывание повторяющегося цикла?

Remix55556
удерж* без запятой вводилось?

7 (изменено: Malcev, 2016-09-02 14:18:39)

Re: Прерывание повторяющегося цикла?

Рекомендую использовать не форумный поиск, а гугловский.
Нажимаете - Поиск Google и вбиваете "удержание ahk".

8 (изменено: Remix55556, 2016-09-02 14:55:02)

Re: Прерывание повторяющегося цикла?

Увы ничего путнего не нашёл, даже через гугл, неужели тут никто не может помочь? скрипт помоему не самый сложнейший...

9

Re: Прерывание повторяющегося цикла?

Не верю. Предложенный мной поиск выдаёт неколько тем с тем, что требуется.

10

Re: Прерывание повторяющегося цикла?

Flasher
Нету там того что требуется. Мне нужно чтобы скрипт нажимал последовательно несколько клавиш бесконечно, и прерывался в любом месте при отпускании клавиши, а не только после выполнения всего цикла в целом. Я не разбираюсь в этой программе, и мне трудно понять какието туманные аналогии предложенных вами тем! Я думал на этом форуме люди разбираются в этой программе и могут помочь...

11

Re: Прерывание повторяющегося цикла?

teadrinker пишет:

Flasher, эту ссылку может видеть только автор поиска!

А эту http://forum.script-coding.com/search.p … m%5B%5D=13?

12

Re: Прерывание повторяющегося цикла?

wisgest
Чудесная тема, только если вы заметили я сказал что не разбираюсь в программе, а там скрипт перестаёт выполняться после того как нажимается другая клавиша, а мне надо не это, я писал выше что мне надо.

13

Re: Прерывание повторяющегося цикла?

Remix55556
Это не тема, а стартовые посты тем. Кликаете по заголовкам и читаете обсуждение.

Тема: AHK: Если клавиши удержаны,то...
Тема: AHK: Выполнение действии при удержанной клавише
Тема: АНК: Физическое удержание ЛКМ и логические клики ЛКМ
Тема: AHK: Повторяющиеся клики ЛКМ при удержание Shift
Тема: AHK: Удерживание клавиш
Тема: AHK: Как послать многократное нажатие клавиши при её удержании
Тема: AHK: Действие на удержание клавиши мыши
Тема: AHK: Повторяющиеся нажатия клавиши Q при удержании ПКМ

Там всё вполне доходчиво. Нет смысла плодить одно и то же по 100 раз.

14

Re: Прерывание повторяющегося цикла?

Flasher
Сейчас я специально просмотрел все эти темы, что вы мне предложили. И вот что я нашёл, из самого схожего с моим запросом, там в основном нажатие многократное ОДНОЙ клавиши, когда удерживается другая. А так чтобы был цикл нажатий НЕСКОЛЬКИХ клавиш при удержании одной, и чтобы он ещё и ПРЕРЫВАЛСЯ при отпускании в любой момент, там нету. Блин я уже 3 раз тут пишу что мне надо.

15 (изменено: Malcev, 2016-09-03 00:25:14)

Re: Прерывание повторяющегося цикла?

keys := ["a", "b", "c", "d", "e"]

F11::
While GetKeyState(A_ThisHotkey, "P")
{
   n++
   Send % keys[n]
   Sleep 100
   if (n = keys.Length())
      n = 0
}
return

16 (изменено: Flasher, 2016-09-03 02:07:42)

Re: Прерывание повторяющегося цикла?

Remix55556 пишет:

А так чтобы был цикл нажатий НЕСКОЛЬКИХ клавиш при удержании одной, и чтобы он ещё и ПРЕРЫВАЛСЯ при отпускании в любой момент, там нету.

Не имеет значения, какие команды прописаны в цикле. Хоть с посылом одной клавиши, хоть сотни.


Malcev
Тут логично оформить возврат к началу при каждом нажатии.

F11::

for k in [1, 2, 3, 4, 5, 6, 7, 8, 9]
{
  If GetKeyState(A_ThisHotkey, "P")
  {  Send % k
     Sleep 100
  }
}

17 (изменено: Remix55556, 2016-09-03 12:15:57)

Re: Прерывание повторяющегося цикла?

Flasher
Спс, за ответы, но вот ещё 1 вопрос, так как скрипт делается для файтингов, как ещё можно сделать так, чтобы между каждой клавишей цикла, можно было сделать свою задержку? К примеру клавиша 1 нажимается, задержка 100, клавиша 2 нажимается задержка 150, и тд. ?
Я пытался вот так сделать, но тогда нажимается у меня только клавиша 1. А остальные не хотят, где ошибка?


key_combo1:="Numpad1"
numpad1:: if combo1
{
Loop, 1
{
send, {vk31 down}
Sleep, 100
{
Send, {vk31 up}
Sleep, 50
break
}
Loop, 1
send, {vk32 down}
Sleep, 70
{
Send, {vk32 up}
Sleep, 100
break
}
Loop, 1
send, {vk33 down}
Sleep, 100
{
Send, {vk33 up}
Sleep, 100
break
}
Loop, 1
send, {vk34 down}
Sleep, 60
{
Send, {vk34 up}
Sleep, 100
break
}
}
}

18

Re: Прерывание повторяющегося цикла?

Remix5551256  >>>

sc4F::
for k, p in {1:100, 2:50, 3:70, 4:100}
{ If GetKeyState(A_ThisHotkey, "P")
  {  Send % k
     Sleep % p
  }
}

19 (изменено: Remix55556, 2016-09-03 13:45:58)

Re: Прерывание повторяющегося цикла?

Flasher
Спс огромное! Всё работает!
Ещё вопросик , а если надо чтобы из цикла например 1234, клавиша 2, нажимается и удерживается скажем пару секунд(2000), в то время клавиши 34 продолжают нажиматся. Как такое будет выглядеть? Заранее спасибо.

20

Re: Прерывание повторяющегося цикла?

Remix55556
Не понял, в чём смысл? 2 - это псевдомодификатор? Т.е. её в цикле нажимать не нужно, только держать?
И для чего 2000? Т.е. после отпускания Numpad1 ещё 1730 мс держать? Или всё же отпускать?

21

Re: Прерывание повторяющегося цикла?

Flasher
Кароче нужен вариант такой имитировать, нажимается клавиша 1, потом нажимается 2, и удерживается в течении 3 секунд скажем, но после 2 через скажем 100 млс нажимается 3, и 4 потом как по циклу дальше. А 2 отпускается через 3 секунды. Както так, конечно серия будет длиннее чем 1234, это просто пример, надеюсь я понятно объяснил)

22

Re: Прерывание повторяющегося цикла?

Remix55556
Надеюсь, я понятно задал вопросы? Зачем клавишу 2 держать, если можно нажать её по окончанию удержания хоткея?

Перед ответом очень советую внять пп. 3.3, 3.4, 3.7, 3.12, 4.4, 4.10.