1

Тема: Проверка изменения цвета пикселя.

Здравствуйте, у меня такой вопрос: Можно ли составить скрипт проверки изменения цвета пикселя с определенными координатами, и когда цвет меняется происходит нажатие действия(кнопки В)? Проблема именно в том, что я не нашел подобных примеров в справке.

2

Re: Проверка изменения цвета пикселя.

PixelGetColor

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: Проверка изменения цвета пикселя.

Помогло, но не совсем, скрипт срабатывает только на третьем пункте, там цвета равны

k:: 

MouseGetPos, MouseX, MouseY
valy=%colur%

sleep 300

MouseGetPos, MouseX, MouseY
PixelGetColor, color, %MouseX%, %MouseY%
valz=%color%
MsgBox %valz% %valy%

if (value%colur%<value%color%)
send a
else if (value%colur%>value%color%)
send b
else if (%valy%=%valz%)
send %color%
else send C
return

4

Re: Проверка изменения цвета пикселя.

Опечатка, начало немного иное:


k:: 

MouseGetPos, MouseX, MouseY
PixelGetColor, colur, %MouseX%, %MouseY%
valy=%colur%

sleep 300

5

Re: Проверка изменения цвета пикселя.

Не очень ясен смысл кода. Как это нужно понимать

if (value%colur%<value%color%)

Что это за value%colur%, откуда оно взялось?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: Проверка изменения цвета пикселя.

Разобрался, стер все проценты и лишние значения под блоком If.

7 (изменено: <IvanSan>, 2014-12-13 17:55:30)

Re: Проверка изменения цвета пикселя.

Не так давно, сам искал оптимальный способ цветофиксации. На данный момент сканирую, следующим методом (пример с комментариями):

#SingleInstance
#MaxThreads 1
#MaxThreadsPerHotkey 1
#HotkeyInterval 1000
#MaxHotkeysPerInterval 10
#MaxThreadsBuffer Off
SetWinDelay 0
DetectHiddenText On
DetectHiddenWindows On
SetTitleMatchMode 3
SetTitleMatchMode Fast
#AllowSameLineComments
#CommentFlag ______
_____________________________________________________________________________________________________________
______ После - строка является комментарием (не читается скриптом).
_____________________________________________________________________________________________________________
______ ScanWinName = Название окна (с учётом регистра) для сканирования (FullScreen приложения = окна).
______ C00 = (произвольное) название переменной, хронящей код цвета целевого пикселя (в примере  x=0 | y=0).
______ Первые 13 строк - для конкретного скрипта. Нет смысла изменять скрипт, под этим "шаблоном".
_____________________________________________________________________________________________________________
Loop ______ Запускает цикл (ниже) - совершающий одну проверку цвета, по координатам, 10 раз в секунду.
{
    IfWinActive ScanWinName ______ Когда целевое окно активно.
    {
        PixelGetColor C00, 0, 0 ______ Сохроняет цветовой код первого (углового) пикселя слева/сверху.
        {
_____________________________________________________________________________________________________________
            If C00 = 0xFFFFFF ______ Цвет, который должен поменяться (в примере - белый).
            {
                Sleep 100 ______ В ожидании изменений - возвращает в цикл.
            }
_____________________________________________________________________________________________________________
            Else If C00 != 0xFFFFFF ______ Цвет поменялся.
            {
                SendInput {b} ______ Симуляция "b" (нажал-отпустил), согласно циклу.
                Sleep 100 ______ После, возвращает в цикл.
            }
        }
    }
_____________________________________________________________________________________________________________
    Else IfWinNotActive ScanWinName ______ Когда целевое окно неактивно/несуществует.
    {
        WinWaitActive ScanWinName ______ Ожидает активации целевого окна (не сканируя).
        Sleep 100 ______ После, возвращает в цикл.
    }
}
_____________________________________________________________________________________________________________

Прикреплённый файл .txt - этот же скрипт в "Блокноте".

Post's attachments

ScanColorComment.txt 2.23 kb, 14 downloads since 2014-12-13 

You don't have the permssions to download the attachments of this post.
Уравнение абсолютной прогрессии:
|0| Однажды, я осознал - мои знания ровны нолю...
|1| С тех пор, ноль - бесконечно, стремиться к бесконечности...