Есть часть скрипта: цикл, работающий идеально
Я хочу добавить в него условие, чтобы при зажатии клавиши "g" больше определенного времени - выполнялось действие. Судя из примеров на форуме подходит это:
Когда соединяю их вместе, то сам этот блок работает, но изменяет работу основной части непонятным образом, может пока считает TimerDiff заблокировать передачу нажатия активному окну, когда ему помочь физическим нажатием на клавишу, то он тогда ее програмно зажимает и даже не реагирует после отсчета времени, также не реагирует на отжатие ее по команде из основного скрипта. В общем глюки основного скрипта, хотя сам нижний если только проверить срабатывает норм. Пробовал много вариантов, этот самый приближенный к рабочему. Может я что неправильно делаю.Соответствующие библиотеки подключаю.
Код:
While 1
$coord = PixelSearch(23, 628, 23, 628, 0xD5DDC8, $shade)
If Not @error Then
Send("{SPACE}")
sleep(1120+RandSleep)
MouseClick($button, 178+Random(-1, 3, 1), 679+Random(-1, 3, 1), $clicks, $speed)
sleep(1333+RandSleep)
MouseClick($button, 412+Random(-1, 3, 1), 270+Random(-1, 3, 1), $clicks, $speed)
sleep(733+RandSleep)
MouseClick($button, 411+Random(-1, 3, 1), 268+Random(-1, 3, 1), $clicks, $speed)
sleep(733+RandSleep)
MouseClick($button, 410+Random(-1, 3, 1), 269+Random(-1, 3, 1), $clicks, $speed)
sleep(2333+RandSleep)
Send("{SPACE}")
sleep(733+RandSleep)
RandClick1()
Else
PixelSearch($x4, $y4 - 2, $x4, $y4 - 2, 0xFFFFFF, $shade)
Select
Case @error
Send("{g down}")
EndSelect
PixelSearch(438, 572, 438, 572, 0xC3C1B4, $shade); 1-423-B3AFA4 2-428-C3C1B4 3-433-C3C1B4 4-438-C3C1B4 5-443-C3C1B4 6-448-C6C4B7 458-C3C1B4 508-C1C3B5
Select
Case @error
Send("{g up}")
Send("{h down}")
EndSelect
PixelSearch(433, 552, 433, 552, 0xC8C9BB, $shade); 1-423-B8B6AA 2-428-C7C8BA 3-433-C8C9BB 4-438-C8C9BB 508-C8C9BB
Select
Case @error
Send("{h up}")
Send("{g down}")
EndSelect
PixelSearch(508, 552, 508, 552, 0xC8C9BB, $shade); 1-423-B8B6AA 2-428-C7C8BA 3-433-C8C9BB 4-438-C8C9BB 508-C8C9BB
Select
Case @error
Restart()
EndSelect
PixelSearch(508, 572, 438, 508, 0xC1C3B5, $shade); 1-423-B3AFA4 2-428-C3C1B4 3-433-C3C1B4 4-438-C3C1B4 5-443-C3C1B4 6-448-C6C4B7 458-C3C1B4 508-C1C3B5
Select
Case @error
Restart()
EndSelect
$coord = PixelSearch(2, 520, 801, 534, 0xFFFFFF, $shade)
If Not @error Then
Send("{f}")
EndIf
$coord = PixelSearch(2, 529, 801, 534, 0xFFFFFF, $shade)
If Not @error Then
Restart()
EndIf
$coord = PixelSearch(641, 641, 641, 641, 0xF4F3DF, $shade)
If Not @error Then
sleep(2333+RandSleep)
Send("{SPACE}")
sleep(933+RandSleep)
RandClick1()
EndIf
EndIf
WEnd
Я хочу добавить в него условие, чтобы при зажатии клавиши "g" больше определенного времени - выполнялось действие. Судя из примеров на форуме подходит это:
Код:
If _IsPressed("47", $dll) Then
$t = TimerInit()
Do
If TimerDiff($t) >= $limit Then
Restart()
ExitLoop
EndIf
Until Not _IsPressed("47", $dll)
EndIf
Когда соединяю их вместе, то сам этот блок работает, но изменяет работу основной части непонятным образом, может пока считает TimerDiff заблокировать передачу нажатия активному окну, когда ему помочь физическим нажатием на клавишу, то он тогда ее програмно зажимает и даже не реагирует после отсчета времени, также не реагирует на отжатие ее по команде из основного скрипта. В общем глюки основного скрипта, хотя сам нижний если только проверить срабатывает норм. Пробовал много вариантов, этот самый приближенный к рабочему. Может я что неправильно делаю.Соответствующие библиотеки подключаю.
Код:
#include <Misc.au3>
$dll = DllOpen("user32.dll")