1 (изменено: pomgoo, 2014-05-07 06:00:07)

Тема: AHK:Сигнал при изменении цвета

Доброго времени суток, в прошлый раз вы мне очень сильно помогли, надеюсь вы выручите меня снова.
Теперь нужно чтобы AHK проверял один пиксель, а лучше область небольшого разрешения на изменение цвета. В обычном режиме два цвета программа должна игнорировать, а если сектор становится других цветов, то давать звуковой сигнал.

Заранее спасибо.

2

Re: AHK:Сигнал при изменении цвета

проверял один пиксель

Это просто.


CoordMode, Pixel, Screen

Colors = 0xFFFFFF|0x000000|0x045603|

Loop   {
    PixelGetColor, Color, 1356, 177, RGB
    if !Instr(Colors, Color "|")
        soundbeep
}

а лучше область

Как нибудь позже напишу.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK:Сигнал при изменении цвета

Примерно так.


CoordMode, Pixel, Screen
Global Colors := "0xFFFFFF|0x000000|0x045603|"

Loop
    If NotMyPixel(756, 182, 760, 186)
        soundbeep
    
NotMyPixel(x1, y1, x2, y2) {
    Loop % y2-y1+1
    { 
        y := y1+A_Index-1
        Loop % x2-x1+1
        {
            PixelGetColor, c, x1+A_Index-1, y, RGB 
            if !Instr(Colors, c "|") 
                Return 1 
        }
    }      
}  
По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4 (изменено: cmdz, 2014-05-08 16:28:25)

Re: AHK:Сигнал при изменении цвета

Можно как-то так:


if a := GetPixel(0, 0, 100, 100, "0xFFFFFF")
    Msgbox % a.c "-" a.x "x" a.y

GetPixel(x1, y1, x2, y2, color){
    PixelSearch, Px, Py, % x1, % y1, % x2, % y2, % color, 3, Fast
    return (ErrorLevel) ? 0 : {x:Px, y:Py, c:color}
}
WinXPx32, AutoHotkey v1.1.14.04 (Unicode 32-bit)

5 (изменено: serzh82saratov, 2014-05-08 17:40:19)

Re: AHK:Сигнал при изменении цвета

cmdz
А какое отношение это имеет к задаче?

---

Есть более простой способ в сравнении с 3 постом, но действует немного иначе. Если в задаче имеется в виду одноцветный квадрат, то достаточно этого:


CoordMode, Pixel, Screen
Colors = 0xFFFFFF|0x000000|0x045603

Loop
    Loop, parse, Colors, | 
    { 
        PixelSearch, , , 1000, 300, 1011, 311, % A_LoopField, , Fast RGB
        if !ErrorLevel
            Break
        soundbeep
    }

Хотя зачем тогда область...

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

6

Re: AHK:Сигнал при изменении цвета

Ну как, если в области/секторе присутствует определенный(0xFFFFFF) цвет, то "soundbeep".
Ведь остальные цвета игнорируются.

if GetPixel(0, 0, 100, 100, "0xFFFFFF")
     soundbeep

GetPixel(x1, y1, x2, y2, color){
    PixelSearch, , , % x1, % y1, % x2, % y2, % color, 3, Fast
    return (ErrorLevel) ? 0 : 1
}

Или я что-то недопонял. Может не обратил внимание на слово "других"

pomgoo пишет:

...а если сектор становится других цветов

А у вас все правильно, вы молодец.


P.S. Почему-то три дня не мог попасть на сайт, и такое переодически случается.

Yandex Browser пишет:

Невозможно загрузить страницу – сервер не отвечает.

WinXPx32, AutoHotkey v1.1.14.04 (Unicode 32-bit)

7

Re: AHK:Сигнал при изменении цвета

Я понял как: если квадрат например жёлтый или зелёный - то всё норм, если другого цвета - то soundbeep.

Yandex Browser пишет:

Невозможно загрузить страницу – сервер не отвечает.

Наверное проблема в Yandex Browser.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8 (изменено: cmdz, 2014-05-08 17:57:47)

Re: AHK:Сигнал при изменении цвета

Просто лично мне не очень нравится когда функция возвращает "soundbeep|true|false".
C этим return-ом


return (ErrorLevel) ? 0 : {x:Px, y:Py, c:color}

мне удобнее (лично мне)

Colors = 0xFFFFFF|0x000000|0x045603

Loop, parse, Colors, |
{
    if a := GetPixel(5, 5, 100, 100, A_LoopField){
        soundbeep
        Msgbox % a.c "-" a.x "x" a.y
    }
}

GetPixel(x1, y1, x2, y2, color){
    PixelSearch, Px, Py, % x1, % y1, % x2, % y2, % color, 3, Fast
    return (ErrorLevel) ? 0 : {x:Px, y:Py, c:color}
}

P.S. Yandex Browser игнорирует только http://forum.script-coding.com/
Сижу в пригороде через usb-модем, никаких proxy/firewall-ов

WinXPx32, AutoHotkey v1.1.14.04 (Unicode 32-bit)