Добрый день.
Существует такой скрипт
Проблема в том, что функция PixelGetColor срабатывает только где-то через 0,5-1 сек. Ну, то есть либо сама функция, либо условие сравнения.
Задача скрипта в том, что на рабочем столе есть 4 открытых окна, и если в каком-то из них появляется нужный пиксель по указанным координатам, то отправлять нажатие указанных клавиш.
Всё работает хорошо, но есть небольшое но. Очень долго скрипт "понимает" есть ли нужный пиксель в указанных координатах.
По-сути появляется всплывающее окно время от времени в одном из открытых клиентов программы. И надо нажимать определенную кнопку, если в одной из программ это окно появляется. После чего это окно исчезает.
Проблема в том, что я это окно могу наблюдать около секунды, хотя для меня очень важно опрежать моих конкурентов и нажимать эту кнопку первым. В итоге часто бывает так, что меня опережают.
Можно ли как-то оптимизировать скрипт так, чтобы я даже зрительно не успевал увидеть того, что это окно вообще появлялось? Сейчас оно появляется и я даже успеваю что-то прочитать и понять, прежде чем команда нажатия клавиши отправится.
P.S.
Я много гуглил на эту тему, но внятного ответа не нашел. Либо ответы 2011-го года, которые не актуальны, либо что-то непонятное, либо не рабочее. Что есть на данный момент?
Существует такой скрипт
Код:
$winList = WinList("programm")
While 1
For $i = 1 to $winList[0][0]
$title = $winList[$i][0]
$handle = $winList[$i][1]
$controlid = ""
$text = ""
$check_round = PixelGetColor(1857, 1028, $handle)
If $check_round = "0x250307" Then
ControlSend($handle,$text,$controlid,"{SPACE}")
ControlSend($handle,$text,$controlid,"{0}")
EndIf
$check_round = PixelGetColor(1857, 828, $handle)
If $check_round = "0x604D2A" Then
ControlSend($handle,$text,$controlid,"{SPACE}")
ControlSend($handle,$text,$controlid,"{0}")
EndIf
$check_round = PixelGetColor(1854, 635, $handle)
If $check_round = "0x52402C" Then
ControlSend($handle,$text,$controlid,"{SPACE}")
ControlSend($handle,$text,$controlid,"{0}")
EndIf
$check_round = PixelGetColor(1858, 440, $handle)
If $check_round = "0x150805" Then
ControlSend($handle,$text,$controlid,"{SPACE}")
ControlSend($handle,$text,$controlid,"{0}")
EndIf
Next
WEnd
Проблема в том, что функция PixelGetColor срабатывает только где-то через 0,5-1 сек. Ну, то есть либо сама функция, либо условие сравнения.
Задача скрипта в том, что на рабочем столе есть 4 открытых окна, и если в каком-то из них появляется нужный пиксель по указанным координатам, то отправлять нажатие указанных клавиш.
Всё работает хорошо, но есть небольшое но. Очень долго скрипт "понимает" есть ли нужный пиксель в указанных координатах.
По-сути появляется всплывающее окно время от времени в одном из открытых клиентов программы. И надо нажимать определенную кнопку, если в одной из программ это окно появляется. После чего это окно исчезает.
Проблема в том, что я это окно могу наблюдать около секунды, хотя для меня очень важно опрежать моих конкурентов и нажимать эту кнопку первым. В итоге часто бывает так, что меня опережают.
Можно ли как-то оптимизировать скрипт так, чтобы я даже зрительно не успевал увидеть того, что это окно вообще появлялось? Сейчас оно появляется и я даже успеваю что-то прочитать и понять, прежде чем команда нажатия клавиши отправится.
P.S.
Я много гуглил на эту тему, но внятного ответа не нашел. Либо ответы 2011-го года, которые не актуальны, либо что-то непонятное, либо не рабочее. Что есть на данный момент?