1 (изменено: Snape, 2016-10-31 17:03:30)

Тема: AHK: Доработка/ оптимизация рабочего кода. (Спам клавиш)

Здравствуйте, прошу помочь решить два вопроса.
Имеется код спама определенных клавиш при зажатии(вроде как работает без нареканий), НО:
1. При нажатии другой любой клавиши, спам прописанных клавиш прекращается (клавиша все еще зажата), если это возможно, сделать так, чтоб спам не прекращался, но и не игнорировал другую нажатую клавишу.
2. Так же не могу понять, как сделать такой же спам с сочетаниями клавиш через скан коды. (Например Shift+c, Alt+c, Ctrl+c).

#IfWinActive, AION GameClient
#IfWinActive, AION Client

sc3::
   Loop
   {
      Send, {sc3}
      Sleep, 15
	  If !GetKeyState("sc3", "P") 
      Break
   }
   Return
   
sc2::
   Loop
   {
      Send, {sc2}
      Sleep, 15
	  If !GetKeyState("sc2", "P")
      Break
   }
   Return
   
sc14::
   Loop
   {
      Send, {sc14}
      Sleep, 15
	  If !GetKeyState("sc14", "P")
      Break
   }
   Return
   
sc2F::
   Loop
   {
      Send, {sc2F}
      Sleep, 15
	  If !GetKeyState("sc2F", "P")
      Break
   }
   Return
   
sc56::
   Loop
   {
      Send, {sc56}
      Sleep, 15
	  If !GetKeyState("sc56", "P")
      Break
   }
   Return
   
sc2C::
   Loop
   {
      Send, {sc2C}
      Sleep, 15
	  If !GetKeyState("sc2C", "P")
      Break
   }
   Return
   
sc10::
   Loop
   {
      Send, {sc10}
      Sleep, 15
	  If !GetKeyState("sc10", "P") 
      Break
   }
   Return
   
sc29::
   Loop
   {
      Send, {sc29}
      Sleep, 15
	  If !GetKeyState("sc29", "P") 
      Break
   }
   Return
   
sc4::
   Loop
   {
      Send, {sc4}
      Sleep, 15
	  If !GetKeyState("sc4", "P") 
      Break
   }
   Return
   
sc5::
   Loop
   {
      Send, {sc5}
      Sleep, 15
	  If !GetKeyState("sc5", "P") 
      Break
   }
   Return
   
sc12::
   Loop
   {
      Send, {sc12}
      Sleep, 15
	  If !GetKeyState("sc12", "P") 
      Break
   }
   Return
   
   

Очень прошу помочь, если это возможно.

2

Re: AHK: Доработка/ оптимизация рабочего кода. (Спам клавиш)

Во первых:

Если Ваш вопрос касается автоматизации игр, задавайте его в соответствующей ветке, не создавайте тему здесь.

А по вопросам:
1: AHK не поддерживает многопоточность. Можно разбить на несколько скриптов каждый из которых будет отвечать за свои клавиши.
2:

+sc2:: ; Shift + 1
   Loop
   {
      Send, {sc2}
      Sleep, 15
      If !GetKeyState("sc2", "P")
      Break
   }
   Return

!sc3:: ; Alt + 2
   Loop
   {
      Send, {sc3}
      Sleep, 15
      If !GetKeyState("sc3", "P")
      Break
   }
   Return

^sc4:: ; Ctrl + 3
   Loop
   {
      Send, {sc4}
      Sleep, 15
      If !GetKeyState("sc2", "P")
      Break
   }
   Return