Тема: AHK: Магнит к выбранному пикселю
Приветствую. Подскажите пожалуйста, возможно ли, запоминание пикселя по нажатию кнопки и его отслеживание, то есть когда объект в движение, ахк ввёл курсор за этим цветом, простыми словами - магнит.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Приветствую. Подскажите пожалуйста, возможно ли, запоминание пикселя по нажатию кнопки и его отслеживание, то есть когда объект в движение, ахк ввёл курсор за этим цветом, простыми словами - магнит.
Это можно сделать через эти команды: 'PixelGetColor ', 'PixelSearch', 'MouseMove'.
PixelGetColor, Color, x%i%, y%i% BRG
if Color = x%i%, y%i%
{
PixelSearch %color%
{
MouseMove, %color%
}
}
Уверен, что неправильно сделал, но как это увязать?
PixelGetColor, color, %MouseX%, %MouseY%
Думаю, так будет правильнее?!
Попробуйте написать нормальный код используя синтаксис из АХК.
Ну, чудес не обещаю...
;запустить скрипт по нажатию мыши
LButton::
;получить координаты
MouseGetPos, GetX, GetY
;получить цвет по координатам
PixelGetColor, Color, GetX, GetY
;переместить курсор
MouseMove, GetX, GetY
;задать координаты для PixelSearch
L := GetX - 100
T := GetY - 100
R := GetX + 100
B := GetY + 100
;запустить это в цикле
Loop
{
;поиск цвета вокруг курсора
PixelSearch, SrchX, SrchY, L, T, R, B, Color, 2, Fast
;перемещение курсора к найденому пикселю
MouseMove, SrchX, SrchY
;переопределение области поиска
L := SrchX - 100 ;числа произвольные.
T := SrchY - 100 ;чем больше область поиска,
R := SrchX + 100 ;тем он медленнее
B := SrchY + 100
Sleep, 20
}
;перезагрузка скрипта
q::Reload
Мне кажется, лучше делать скрин экрана через Gdip, и через него уже искать. Мне кажется будет куда быстрее.
Gdip
Не первый раз про него слышу, но когда попытался загуглить, наткнулся на такие дебри, которые явно выше моей зарплаты. Не могли бы вы, как человек в теме, дать некоторую справку?
А пока - дополнение к вышенаписанному коду, выход из цикла при потере точки:
;запустить это в цикле
Loop
{
;поиск цвета вокруг курсора
PixelSearch, SrchX, SrchY, L, T, R, B, Color, 2, Fast
if (ErrorLevel != 0) ;если цвет не найден
{
i++
if (i >= 50) ;в течение 1 секунды или более
break ;то выход из цикла
continue ;возвращение в начало цикла, чтобы не потерять координаты
}
i := "" ;очистка i
;перемещение курсора к найденому пикселю
MouseMove, SrchX, SrchY
;переопределение области поиска
L := SrchX - 100 ;числа произвольные.
T := SrchY - 100 ;чем больше область поиска,
R := SrchX + 100 ;тем он медленнее
B := SrchY + 100
Sleep, 20
}
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться