Get color: различия между версиями
Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == Определяет цвет в заданных координатах. <br>Может находит цвет в перекрыты...») |
Tatikoma (обсуждение | вклад) |
||
Строка 3: | Строка 3: | ||
Определяет цвет в заданных координатах. | Определяет цвет в заданных координатах. | ||
− | + | <br>Может находит цвет в перекрытых окнах. | |
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: опционально. | Привязка к окну: опционально. | ||
− | + | <br>Работа перекрытым окном: опционально. | |
− | + | <br>Работа со свернутым окном: нет. | |
− | get color | + | get color <#color> <#x> <#y> [handle] [abs] |
− | ''' | + | '''<#color>''' - переменная, в которую запишется полученный цвет |
− | + | <br>'''<#x>''' - координата X | |
− | + | <br>'''<#y>''' - координата Y | |
− | + | <br>'''[handle]''' - хендл окна. Если указать, то цвет будет определяться и в перекрытом (не свёрнутом) окне. Как правило, требуется указывать родительское окно. Если возвращается 0 или 0x878787, скорее всего, указано не то окно. | |
− | + | <br>'''[abs]''' - использовать абсолютные координаты. | |
− | + | <br>При указании сразу обоих необязательных параметров 'handle' и 'abs', точка с координатами '#x, #y' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку. | |
== Примеры == | == Примеры == | ||
Строка 27: | Строка 27: | ||
'''Примеры поиска цвета в перекрытом(не свёрнутом) окне:''' | '''Примеры поиска цвета в перекрытом(не свёрнутом) окне:''' | ||
− | + | <br>Привязка к окну обязательна. Aero (темы Windows 7) должен быть включен. Если был установлен Астер, то он должен быть отключен, а система перезагружена. | |
− | + | <br>Окно может быть перекрыто полностью, частично или вообще не перекрыто. Может находиться за пределами экрана. В Windows 10 работает не во всех приложениях, может потребоваться установка Aero Glass. | |
− | + | <br>Учтите, что цвет может определяться со смещением, т. е. не в тех координатах. Если возвращает 0, скорее всего нужно указать родительское окно (обычно это заголовок или рамка). | |
− | + | <br>Иногда, к проверяемым координатам нужно прибавлять размеры рамки окна. | |
− | + | <br>Иногда, к проверяемым координатам нужно прибавлять смещение между родительским и дочерним окном. Узнать можно с помощью скрипта: [[Смещение между окнами]]. | |
− | + | <br>Вместо get color можно использовать [[Findcolor]]. | |
// Пример 3 | // Пример 3 | ||
get color #color 100 150 workwindow // получаем цвет в координатах 100 150, окно может быть перекрыто | get color #color 100 150 workwindow // получаем цвет в координатах 100 150, окно может быть перекрыто | ||
Строка 77: | Строка 77: | ||
[[Color]] | [[Color]] | ||
− | + | <br>[[Findcolor]] | |
− | + | <br>[[Findimage]] | |
− | + | <br>[[If]] | |
== История развития == | == История развития == | ||
'''2.00''' | '''2.00''' | ||
− | + | <br>Добавил возможность занесения в переменную цвета точки, по заданным координатам на экране, с помощью ключевого слова Сolor в команде Get. | |
get color #color #x #y [abs] | get color #color #x #y [abs] | ||
При указании ключевого слова abs, координаты берутся относительно экрана, иначе относительно прикрепленного окна. Если цвет определить не удалось, то переменная будет содержать значение -1. Если переменная ранее не существовала, то она создается. | При указании ключевого слова abs, координаты берутся относительно экрана, иначе относительно прикрепленного окна. Если цвет определить не удалось, то переменная будет содержать значение -1. Если переменная ранее не существовала, то она создается. | ||
'''2.18''' | '''2.18''' | ||
− | + | <br>Подправил 'Get Color' для работы с линейкой. | |
'''2.19''' | '''2.19''' | ||
− | + | <br>Пока отключил альтернативный способ определения цвета в 'get color'. | |
'''2.23''' | '''2.23''' | ||
− | + | <br>Починил конструкцию вида 'get color #c %ar[1 1] %ar[1 2]' сломанную в версии 2.20. | |
− | + | <br>Повысил стабильность работы 'get color' | |
'''2.32''' | '''2.32''' | ||
− | + | <br>Добавил в 'get color' возможность искать цвет в перекрытых окнах, при указании хэндла подопытного окна. Слегка изменился синтаксис 'get color #color #x #y [handle] [abs]'. При указании сразу обоих необязательных параметров 'handle' и 'abs', точка с координатами '#x, #y' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку. | |
[[Категория:Поиск изображений]] | [[Категория:Поиск изображений]] |
Текущая версия на 10:37, 28 августа 2019
Описание
Определяет цвет в заданных координатах.
Может находит цвет в перекрытых окнах.
Синтаксис
Привязка к окну: опционально.
Работа перекрытым окном: опционально.
Работа со свернутым окном: нет.
get color <#color> <#x> <#y> [handle] [abs]
<#color> - переменная, в которую запишется полученный цвет
<#x> - координата X
<#y> - координата Y
[handle] - хендл окна. Если указать, то цвет будет определяться и в перекрытом (не свёрнутом) окне. Как правило, требуется указывать родительское окно. Если возвращается 0 или 0x878787, скорее всего, указано не то окно.
[abs] - использовать абсолютные координаты.
При указании сразу обоих необязательных параметров 'handle' и 'abs', точка с координатами '#x, #y' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку.
Примеры
// Пример 1 get color #color 100 150 // получаем цвет в координатах 100 150 msg #color
// Пример 2 get color #color 100 150 abs // получаем цвет в абсолютных координатах 100 150 msg #color
Примеры поиска цвета в перекрытом(не свёрнутом) окне:
Привязка к окну обязательна. Aero (темы Windows 7) должен быть включен. Если был установлен Астер, то он должен быть отключен, а система перезагружена.
Окно может быть перекрыто полностью, частично или вообще не перекрыто. Может находиться за пределами экрана. В Windows 10 работает не во всех приложениях, может потребоваться установка Aero Glass.
Учтите, что цвет может определяться со смещением, т. е. не в тех координатах. Если возвращает 0, скорее всего нужно указать родительское окно (обычно это заголовок или рамка).
Иногда, к проверяемым координатам нужно прибавлять размеры рамки окна.
Иногда, к проверяемым координатам нужно прибавлять смещение между родительским и дочерним окном. Узнать можно с помощью скрипта: Смещение между окнами.
Вместо get color можно использовать Findcolor.
// Пример 3 get color #color 100 150 workwindow // получаем цвет в координатах 100 150, окно может быть перекрыто msg #color
// Пример 4 set #handle FindWindow (Lineage 2) // находим окно Lineage 2 set #xDelta 8 // размер рамки по X set #yDelta 30 // размер рамки по Y init_arr %a (1) 157 41 2897277 // координаты и цвет (элементы %a [1 1] %a [1 2] %a [1 3]) set #x %a [1 1] + #xDelta // прибавляем к координате X размер рамки по X set #y %a [1 2] + #yDelta // прибавляем к координате Y размер рамки по Y :start get color #color #x #y #handle // получаем цвет из координат 157 41, окно может быть перекрыто hint Полученный цвет: #color, искомый цвет %a [1 3] if #color = %a [1 3] // если цвет найден log Цвет найден wait 100 end_if goto start
// Пример 5 // Небеса: уникальная игра, открытая в браузере Opera set #handle FindWindow (Небеса: уникальная игра! - Игра — Opera) // находим окно // смещение можно узнать скриптом: Смещение между окнами set #xDelta 8 // смещение между окнами по X set #yDelta 78 // смещение между окнами по Y init_arr %a (1) 1026, 647 15990015 // координаты и цвет (элементы %a [1 1] %a [1 2] %a [1 3]) set #x %a [1 1] + #xDelta // прибавляем к координате X смещение по X set #y %a [1 2] + #yDelta // прибавляем к координате Y смещение по Y :start get color #color #x #y #handle // получаем цвет, окно может быть перекрыто hint Полученный цвет: #color, искомый цвет %a [1 3] if #color = %a [1 3] log Цвет найден wait 100 end_if goto start
Смотрите также
История развития
2.00
Добавил возможность занесения в переменную цвета точки, по заданным координатам на экране, с помощью ключевого слова Сolor в команде Get.
get color #color #x #y [abs]
При указании ключевого слова abs, координаты берутся относительно экрана, иначе относительно прикрепленного окна. Если цвет определить не удалось, то переменная будет содержать значение -1. Если переменная ранее не существовала, то она создается.
2.18
Подправил 'Get Color' для работы с линейкой.
2.19
Пока отключил альтернативный способ определения цвета в 'get color'.
2.23
Починил конструкцию вида 'get color #c %ar[1 1] %ar[1 2]' сломанную в версии 2.20.
Повысил стабильность работы 'get color'
2.32
Добавил в 'get color' возможность искать цвет в перекрытых окнах, при указании хэндла подопытного окна. Слегка изменился синтаксис 'get color #color #x #y [handle] [abs]'. При указании сразу обоих необязательных параметров 'handle' и 'abs', точка с координатами '#x, #y' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку.