Get color: различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: « == Описание == Определяет цвет в заданных координатах. <br>Может находит цвет в перекрыты...»)
 
 
Строка 3: Строка 3:
  
 
Определяет цвет в заданных координатах.
 
Определяет цвет в заданных координатах.
&lt;br>Может находит цвет в перекрытых окнах.
+
<br>Может находит цвет в перекрытых окнах.
  
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: опционально.
 
Привязка к окну: опционально.
&lt;br>Работа перекрытым окном: опционально.
+
<br>Работа перекрытым окном: опционально.
&lt;br>Работа со свернутым окном: нет.
+
<br>Работа со свернутым окном: нет.
  get color &lt;#color> &lt;#x> &lt;#y> [handle] [abs]
+
  get color <#color> <#x> <#y> [handle] [abs]
'''&lt;#color>''' - переменная, в которую запишется полученный цвет
+
'''<#color>''' - переменная, в которую запишется полученный цвет
&lt;br>'''&lt;#x>''' - координата X
+
<br>'''<#x>''' - координата X
&lt;br>'''&lt;#y>''' - координата Y
+
<br>'''<#y>''' - координата Y
&lt;br>'''[handle]''' - хендл окна. Если указать, то цвет будет определяться и в перекрытом (не свёрнутом) окне. Как правило, требуется указывать родительское окно. Если возвращается 0 или 0x878787, скорее всего, указано не то окно.  
+
<br>'''[handle]''' - хендл окна. Если указать, то цвет будет определяться и в перекрытом (не свёрнутом) окне. Как правило, требуется указывать родительское окно. Если возвращается 0 или 0x878787, скорее всего, указано не то окно.  
&lt;br>'''[abs]''' - использовать абсолютные координаты.
+
<br>'''[abs]''' - использовать абсолютные координаты.
&lt;br>При указании сразу обоих необязательных параметров 'handle' и 'abs', точка с координатами '#x, #y' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку.
+
<br>При указании сразу обоих необязательных параметров 'handle' и 'abs', точка с координатами '#x, #y' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку.
  
 
== Примеры ==
 
== Примеры ==
Строка 27: Строка 27:
  
 
'''Примеры поиска цвета в перекрытом(не свёрнутом) окне:'''  
 
'''Примеры поиска цвета в перекрытом(не свёрнутом) окне:'''  
&lt;br>Привязка к окну обязательна. Aero (темы Windows 7) должен быть включен. Если был установлен Астер, то он должен быть отключен, а система перезагружена.  
+
<br>Привязка к окну обязательна. Aero (темы Windows 7) должен быть включен. Если был установлен Астер, то он должен быть отключен, а система перезагружена.  
&lt;br>Окно может быть перекрыто полностью, частично или вообще не перекрыто. Может находиться за пределами экрана. В Windows 10 работает не во всех приложениях, может потребоваться установка Aero Glass.
+
<br>Окно может быть перекрыто полностью, частично или вообще не перекрыто. Может находиться за пределами экрана. В Windows 10 работает не во всех приложениях, может потребоваться установка Aero Glass.
&lt;br>Учтите, что цвет может определяться со смещением, т. е. не в тех координатах. Если возвращает 0, скорее всего нужно указать родительское окно (обычно это заголовок или рамка).
+
<br>Учтите, что цвет может определяться со смещением, т. е. не в тех координатах. Если возвращает 0, скорее всего нужно указать родительское окно (обычно это заголовок или рамка).
&lt;br>Иногда, к проверяемым координатам нужно прибавлять размеры рамки окна.
+
<br>Иногда, к проверяемым координатам нужно прибавлять размеры рамки окна.
&lt;br>Иногда, к проверяемым координатам нужно прибавлять смещение между родительским и дочерним окном. Узнать можно с помощью скрипта: [[Смещение между окнами]].  
+
<br>Иногда, к проверяемым координатам нужно прибавлять смещение между родительским и дочерним окном. Узнать можно с помощью скрипта: [[Смещение между окнами]].  
&lt;br>Вместо get color можно использовать [[Findcolor]].  
+
<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]]
&lt;br>[[Findcolor]]
+
<br>[[Findcolor]]
&lt;br>[[Findimage]]
+
<br>[[Findimage]]
&lt;br>[[If]]
+
<br>[[If]]
  
 
== История развития ==
 
== История развития ==
  
 
'''2.00'''
 
'''2.00'''
&lt;br>Добавил возможность занесения в переменную цвета точки, по заданным координатам на экране, с помощью ключевого слова Сolor в команде Get.
+
<br>Добавил возможность занесения в переменную цвета точки, по заданным координатам на экране, с помощью ключевого слова Сolor в команде Get.
 
  get color #color #x #y [abs]
 
  get color #color #x #y [abs]
 
При указании ключевого слова abs, координаты берутся относительно экрана, иначе относительно прикрепленного окна. Если цвет определить не удалось, то переменная будет содержать значение -1. Если переменная ранее не существовала, то она создается.
 
При указании ключевого слова abs, координаты берутся относительно экрана, иначе относительно прикрепленного окна. Если цвет определить не удалось, то переменная будет содержать значение -1. Если переменная ранее не существовала, то она создается.
  
 
'''2.18'''
 
'''2.18'''
&lt;br>Подправил 'Get Color' для работы с линейкой.
+
<br>Подправил 'Get Color' для работы с линейкой.
  
 
'''2.19'''
 
'''2.19'''
&lt;br>Пока отключил альтернативный способ определения цвета в 'get color'.
+
<br>Пока отключил альтернативный способ определения цвета в 'get color'.
  
 
'''2.23'''
 
'''2.23'''
&lt;br>Починил конструкцию вида 'get color #c %ar[1 1] %ar[1 2]' сломанную в версии 2.20.
+
<br>Починил конструкцию вида 'get color #c %ar[1 1] %ar[1 2]' сломанную в версии 2.20.
&lt;br>Повысил стабильность работы 'get color'
+
<br>Повысил стабильность работы 'get color'
  
 
'''2.32'''
 
'''2.32'''
&lt;br>Добавил в 'get color' возможность искать цвет в перекрытых окнах, при указании хэндла подопытного окна. Слегка изменился синтаксис 'get color #color #x #y [handle] [abs]'. При указании сразу обоих необязательных параметров 'handle' и 'abs', точка с координатами '#x, #y' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку.
+
<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

Смотрите также

Color
Findcolor
Findimage
If

История развития

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' должна попадать в заданное окно, иначе цвет не будет определен и команда вернет ошибку.