Что нового

Скрипт для отслеживания области экрана и при появлении заданного цвета был звуковой сигнал.

Unizorgia

Новичок
Сообщения
7
Репутация
0
Доброго времени суток. Задача создание скрипта со звуковым оповещением на область экрана при появлении определённого цвета в этой области.
На данном форуме нашла скрипт (https://autoit-script.ru/threads/nu...vajuschaja-izmenenie-cveta-na-monitore.28290/) но не могу найти способ прикреплять именно область. В заранее благодарна за ответы.
 

Webarion

Осваивающий
Сообщения
135
Репутация
22
 

liond66

Новичок
Сообщения
113
Репутация
2
Попробуйте так:
Код:
Global $hColor = "0x2C8000" ; цвет

_Loop()

Func _Loop()
    Local $iSearch

    Do
        $iSearch = PixelSearch(0, 0, 200, 200, $hColor)    ; координаты области
        If @error <> 1 Then
            SoundPlay("c:\Windows\Media\tada.wav") ; проигрываем файл wav или mp3
            MouseMove($iSearch[0], $iSearch[1])
        EndIf

        Sleep(10)
    Until IsArray($iSearch) ; ждем нужный нам цвет в цикле

    Return
EndFunc   ;==>_Loop


Замените "0x2C8000" на свой цвет.
Замените 0, 0, 200, 200 на свои координаты. Координаты абсолютные.
Свой цвет и координаты можно определить с помощью Au3Info.

Скрипт ждёт появление цвета в прямоугольной области с координатами :
верхний левый угол 0,0 . Правый нижний угол 200, 200,
проигрывает файл, перемещает мышку на найденный пиксель и завершает работу.

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

Навеяно примерами этой темы:
https://autoit-script.ru/threads/avtomatizacija-zvukovoj-signal-pri-nps.6131/
 

rem24

Новичок
Сообщения
14
Репутация
0
Пользуйтесь
Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

OnAutoItExitRegister('CoordSave')

Local $Button_1, $sSettings = @ScriptDir & '\setting.ini'

$hGUI = GUICreate("PixelSearch", 200, 300)

GUICtrlCreateLabel('                Left', 10, 10, 180, 20)
$hLeft = GUICtrlCreateInput(IniRead($sSettings, 'main', 'left', ''), 10, 30, 180, 20)

GUICtrlCreateLabel('        Top', 10, 60, 180, 20)
$hTop = GUICtrlCreateInput(IniRead($sSettings, 'main', 'top', ''), 10, 80, 180, 20)

GUICtrlCreateLabel('        Right', 10, 110, 180, 20)
$hRight = GUICtrlCreateInput(IniRead($sSettings, 'main', 'right', ''), 10, 130, 180, 20)

GUICtrlCreateLabel('        Bottom', 10, 160, 180, 20)
$hBottom = GUICtrlCreateInput(IniRead($sSettings, 'main', 'bottom', ''), 10, 180, 180, 20)

GUICtrlCreateLabel('        Color', 10, 210, 180, 20)
$hColor = GUICtrlCreateInput(IniRead($sSettings, 'main', 'color', ''), 10, 230, 180, 20)



GUISetState(@SW_SHOW, $hGUI)

$Button_1 = GUICtrlCreateButton("Ок", 40, 260, 120)
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
             ExitLoop
          Case $Button_1
              GUISetState(@SW_HIDE)
    EndSwitch
Pixel_Search()
WEnd



Func Pixel_Search()
PixelSearch(GUICtrlRead($hLeft), GUICtrlRead($hTop), GUICtrlRead($hRight), GUICtrlRead($hBottom), GUICtrlRead($hColor), 1, 5) ; координаты области, цвет, допущение оттенка, шаг поиска
If Not @error Then
SoundSetWaveVolume(100) ; устанавливает громкость
SoundPlay(@WindowsDir & "\media\tada.wav", 1)

MsgBox(16 + 262144, "Сообщение", "Ошибка записи!", 1) ; Действие
EndIf
Sleep(100)
EndFunc

Func CoordSave()
IniWrite($sSettings, 'main', 'left', GUICtrlRead($hLeft))
IniWrite($sSettings, 'main', 'top', GUICtrlRead($hTop))
IniWrite($sSettings, 'main', 'right', GUICtrlRead($hRight))
IniWrite($sSettings, 'main', 'bottom', GUICtrlRead($hBottom))
IniWrite($sSettings, 'main', 'color', GUICtrlRead($hColor))
EndFunc
 
Верх