Что нового

Сброс Sleep

Alexlucky

Новичок
Сообщения
2
Репутация
0
Добрый день.
Столкнулся с проблемой и не могу понять как решить.
Есть скрипт, который из массива берет данные и подставляет в поиск пикселя.
При нажатии любой кнопки на клавиатуре - засыпает на 1 секунду.
Вопрос: как сделать так - что бы при нажатии любой клавиши сон сбрасывался на 0 и начинался заново?

Код:
#include <UserInput.au3>

HotKeySet ("{ENTER}", "Start")
HotKeySet ("{ESC}", "_Exit")

Local $arr[4][6]=[ _
["0", "0", "0", "0", "0x000000", "1"], _
["0", "0", "0", "0", "0x000000", "2"], _
["0", "0", "1920", "1080", "0x000000", "3"], _
["0", "0", "1920", "1080", "0xFFFFFF", "4"]]

While 1
	Sleep(100)
WEnd

Func Start()
	While 1
		If _UserInput_Read('[:ALLKEYS:]')[0] Then
				Sleep (1000)
		Else
			For $i = 0 To 3
				$pxs = PixelSearch($arr[$i][0],$arr[$i][1],$arr[$i][2],$arr[$i][3],$arr[$i][4])
					If isArray($pxs) then
							Send ($arr[$i][5])
						ExitLoop
					EndIf
			Next
		EndIf
	WEnd
EndFunc

Func _Exit()
	Exit
EndFunc
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Код:
Func Start()
	While 1
		If _UserInput_Read('[:ALLKEYS:]')[0] Then
				; Sleep (1000)
				$t = TimerInit()
				Do
					Sleep(10)
					If _UserInput_Read('[:ALLKEYS:]')[0] Then $t = TimerInit()
				Until TimerDiff($t) > 1000
		Else
			For $i = 0 To 3
...
 
Автор
A

Alexlucky

Новичок
Сообщения
2
Репутация
0
Спасибо!
А помогите еще в одном вопросе можно как то реализовать исключения для кнопок WASD.
т.е. если нажаты кнопки -W или A или S или D скрипт продолжает работать и перебирать массив.
Если нажата любая другая кнопка скрипт отправляется в Sleep.
в AHK я делал так, но тут ума не прилажу как это сделать.
Код:
p1 := [0, 0, A_ScreenWidth, A_ScreenHeight, "Savage_Roar.png", 1]
p2 := [0, 0, A_ScreenWidth, A_ScreenHeight, "2.png", 2]
p3 := [0, 0, A_ScreenWidth, A_ScreenHeight, "3.png", 3]
p4 := [0, 0, A_ScreenWidth, A_ScreenHeight, "4.png", 4]


SetTimer, CheckActivity, 50
Exit

CheckActivity:
  loop
   {
      if(A_TimeIdlePhysical < 200) and !(GetKeyState("w", "p")) and !(GetKeyState("a", "p")) and !(GetKeyState("s", "p")) and !(GetKeyState("d", "p"))
         {
            sleep 500
         }
      else
         {
            loop 4
               {
                  ImageSearch, Px, Py, p%A_Index%[1], p%A_Index%[2], p%A_Index%[3], p%A_Index%[4], % p%A_Index%[5]
                  if !errorlevel
                     {
                        send % p%A_Index%[6]
                        break
                     }
               }
         }
  }
return
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
Alexlucky
исключения для кнопок WASD
Код:
Func Start()
  While 1
    $Input = _UserInput_Read('[:ALLKEYS:]')
    If $Input[0] Then
      Switch $Input[1]
        Case 41, 44, 53, 57
        Case Else
          $t = TimerInit()
          Do
            Sleep(10)
            If _UserInput_Read('[:ALLKEYS:]')[0] Then $t = TimerInit()
          Until TimerDiff($t) > 1000
      EndSwitch
    Else
      For $i = 0 To 3
...
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Alexlucky [?]
А помогите еще в одном вопросе

Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Глобальный модератор.
 
Верх