Тема: AHK: Резкая остановка скрипта.
Здравствуйте, как сделать так чтобы скрипт на автомате видел определенный пиксель и сразу же резко останавливался , уже несколько дней мучаюсь с этой проблемой помогите пожалуйста.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте, как сделать так чтобы скрипт на автомате видел определенный пиксель и сразу же резко останавливался , уже несколько дней мучаюсь с этой проблемой помогите пожалуйста.
Покажите свой код, как пробовали.
Я в этом новичок если что, думаю у меня там есть ошибка. В скрипте выполняются одинаковые действия, но в разных координатах. Мне надо чтобы после данных двух строк, MouseMove, X , Y SendInput {vk01}, шла проверка на пиксель, и если пиксель появился, резка остановка.
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
MouseMove, 663, 550
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
Sleep 0.1
MouseMove, 854, 548
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
Sleep 0.1
MouseMove, 1042, 574
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
Sleep 0.1
MouseMove, 1255, 508
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
}
Return
Смотрите в правилах, как код оформляется.
Щас.
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
MouseMove, 663, 550
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
Sleep 0.1
MouseMove, 854, 548
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
Sleep 0.1
MouseMove, 1042, 574
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
Sleep 0.1
MouseMove, 1255, 508
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 = %color%
if ( Var1 = 0xF3FDF8 )
Return
Sleep 0.1
SendInput {vk71}
Sleep 0.1
SendInput {vk45}
SendInput {vk71}
}
Return
Теперь попробуйте запустить код, который опубликовали. Либо одна скобка лишняя, либо чего-то не хватает.
Sleep не поддерживает дробных значений, он в милисекундах.
Чтобы приравнять переменной значение, используется
Var1 := color
Главная ошибка скорее всего в том, что не указан CoordMode. По умолчанию координаты считаются относительно активного окна, а не экрана.
Спасибо.
vk62::
PixelGetColor, color, 1173, 403, alt
Var1 := color
if ( Var1 = 0x10f28c )
Return
MouseMove, 663, 550
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 := color
if ( Var1 = 0x10f28c )
Return
Sleep 1
SendInput {vk71}
Sleep 1
SendInput {vk45}
SendInput {vk71}
Sleep 1
MouseMove, 854, 548
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 := color
if ( Var1 = 0x10f28c )
Return
Sleep 1
SendInput {vk71}
Sleep 1
SendInput {vk45}
SendInput {vk71}
Sleep 1
MouseMove, 1042, 574
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 := color
if ( Var1 = 0x10f28c )
Return
Sleep 1
SendInput {vk71}
Sleep 1
SendInput {vk45}
SendInput {vk71}
Sleep 1
MouseMove, 1255, 508
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
Var1 := color
if ( Var1 = 0x10f28c )
Return
Sleep 1
SendInput {vk71}
Sleep 1
SendInput {vk45}
SendInput {vk71}
Return
Сейчас получилось вот так, но все равно скрипт не останавливается когда появился определенный пиксель.
PixelGetColor, color, 1173, 403, alt Var1 := color if ( Var1 = 0x10f28c )
Во-первых, не понятно, зачем тут Var1. Можно сравнивать непосредственно переменную color. Во-вторых, CoordMode я так и не увидел. Уверены, что координаты 1173, 403 нужно отсчитывать от активного окна?
скрипт не останавливается когда видит пиксель
А как вы поняли, что он его «видит»?
Насчет понял ли я что он его видит, скрипт просматривает вкладки, когда во вкладке появляется пиксель скрипт должен остановиться. Но он не останавливается, а когда я сам захожу во вкладку где есть данный пиксель, нажимаю на кнопку включения скрипта, он не работает, значит, он видит пиксель. Но когда я захожу в другую вкладку и скрипт так же просматривает вкладки, он просто вкладку с пикселем пролистывает никак не реагируя. А про var1 и Coordmode я не знаю как правильно это оформить в скрипте так как новичок. А про отсчет координатов от активного окна да.
Если от активного окна — тогда технически всё правильно, сказать, в чём проблема, можно только непосредственно увидев экран. Возможно, некорректно цвет указан.
PixelGetColor, color, 1173, 403, alt
if ( color = 0x10f28c )
Все работает, но скрипт останавливается только тогда, когда на экране есть этот пиксель и мне надо нажать кнопку н2(точнее ту кнопку на которую включается скрипт). То есть он на автомате не останавливается, возможно это автоматизировать, чтобы мне ничего не пришлось нажимать, потому что скорость просмотра окон большая, вручную вовремя никак остановить.
Буду максимально благодарен если поможете.
Все работает, но скрипт останавливается только тогда, когда на экране есть этот пиксель и мне надо нажать кнопку н2(точнее ту кнопку на которую включается скрипт). То есть он на автомате не останавливается
Я из этого ничего не понял. Так останавливается, или нет?
Смотрите, он так же само пролистывает окно с пикселем никак не реагируя, но когда я сам захожу в окно с этим пикселем и нажимаю кнопку включения скрипта он выключается-значит видит пиксель, но мне надо чтобы оно работало автоматически. То есть когда скрипт просматривает окна, и в определенном окне появился нужный пиксель, он сразу же выключался, останавливался, без разницы. Но главное чтобы это было на автомате.
vk62::
PixelGetColor, color, 1173, 403, alt
if ( color = 0x10f28c )
ExitApp
MouseMove, 663, 550
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
if ( color = 0x10f28c )
ExitApp
Sleep 1000
SendInput {vk71}
Sleep 1000
SendInput {vk45}
SendInput {vk71}
Sleep 1000
MouseMove, 854, 548
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
if ( color = 0x10f28c )
ExitApp
Sleep 1000
SendInput {vk71}
Sleep 1000
SendInput {vk45}
SendInput {vk71}
Sleep 1000
MouseMove, 1042, 574
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
if ( color = 0x10f28c )
ExitApp
Sleep 1000
SendInput {vk71}
Sleep 1000
SendInput {vk45}
SendInput {vk71}
Sleep 1000
MouseMove, 1255, 508
SendInput {vk01}
PixelGetColor, color, 1173, 403, alt
if ( color = 0x10f28c )
ExitApp
Sleep 1000
SendInput {vk71}
Sleep 1000
SendInput {vk45}
SendInput {vk71}
Return
Вот как скрипт выглядит щас.
А, наверно понял, вам нужен цикл. Смотрите команду Loop.
Спасибо большое все работает!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться