Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Поиск цвета в перекрытом окне Ultima
pet
сообщение 9.8.2012, 22:41
Сообщение #1


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



Я прощу прощения за свою чрезмерную активность и создание тем, возможно по глупым вопросам, но у меня возникла проблема.
Проблема связана с поиском цвета в перекрытом окне.
Код

set #hendle getwindow ()
say #hendle
set $res findcolor (0, 0 800, 600 1 1 526344 %arr #hendle 1)
say $res
set $res findcolor (0, 0 800, 600 1 1 526344 %arr 2 1)
say $res

Пробую искать так: открываю окно ультимы, в пошаговом режиме прогоняю первые 2 строки, разворачиваю окно браузера (не сворачиваю Ултиму), прогоняю оставшиеся 4. За содержимым "$res" слежу в окне параметров чара - оба раза функция возвращает 0. Переключаюсь обратно в окно ультимы и прогоняю все строки: 1 вызов - 0, второй - 1. Разворачиваю окно браузера, выбираю другой цвет (который есть в браузере) и выполняю те же самые шаги. В обоих случаях первый вызов возвращает 1, второй вызов, соответствено - 0, затем 1.
Что я делаю не так? Почему с Ултимой не проходит, а с браузером все ок?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 13.8.2012, 22:26
Сообщение #2


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



Похоже какие-то проблемы с хэндлом, ибо если сделать активным поверх ультимы окошечко пилота (маленькое не перекрывающее все окно), соответственно вылавливается его хэндл, оба раза возвращается 1. Тогда как делая активным окно ультимы, первый вызов возвращает 0, второй 1. Что может быть? Что еще можно попробовать? Ультимовцы совсем не ходят сюда, по всей видимости.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 14.8.2012, 8:05
Сообщение #3


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27737
Пользователь №: 11.279



а хендл точно правильно задан? если свернуть ултиму, потом сделать showwindow #handle, то окно развернется?


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 14.8.2012, 21:53
Сообщение #4


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



Да, окно разворачивается. Более того, указывая "workwindow" в "findcolor" - так же не приводит к результатам.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 15.8.2012, 7:55
Сообщение #5


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27737
Пользователь №: 11.279



ультиму точно не сворачиваете?

Сообщение отредактировал DarkMaster - 15.8.2012, 7:56


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 15.8.2012, 21:50
Сообщение #6


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



Она развернута. Окно активно, на переднем плане. Запускаю скрипт, что в первом посте и пилот возвращает из первого вызова findcolor - 0, из второго - 1.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 16.8.2012, 6:30
Сообщение #7


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27737
Пользователь №: 11.279



Т.е. в обоих случаях окно развернуто и видимо? Странно... Возможно какая-то несовместимость конкретно с ультимой.
Кстати а версия пилота какая?

Сообщение отредактировал DarkMaster - 16.8.2012, 6:31


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
WKnight
сообщение 16.8.2012, 12:02
Сообщение #8


********

Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006
Группа: Пользователи
Наличность: 0
Пользователь №: 4.688



А если использовать не getwindow, а например findwindow (заголовок), или простое ctrl+a?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 16.8.2012, 14:45
Сообщение #9


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



Все то же самое.
Код

set #hendle findwindow (Ultima Online)
msg #hendle
showwindow #hendle
set $res findcolor (0, 0 800, 600 1 1 7566203 %arr #hendle 1)
msg $res
set $res findcolor (0, 0 800, 600 1 1 7566203 %arr 2 1)
msg $res

Окно разворачивается на передний план и так же - 0, затем 1.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 16.8.2012, 14:59
Сообщение #10


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Привязку скрипта к окну как делаете?


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 16.8.2012, 15:01
Сообщение #11


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



Кнопкой "W" в панели. А какое это имеет значение, если я исчу цвет по хэндлу?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 16.8.2012, 15:08
Сообщение #12


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Код
set $res findcolor (0, 0 800, 600 1 1 7566203 %arr #hendle 1) // ищем по хендлу окна 1 точку
msg $res
set $res findcolor (0, 0 800, 600 1 1 7566203 %arr 2 1) // ищем в привязанном окне 1 точку, тип поиска 2


Сообщение отредактировал Zeleax - 16.8.2012, 15:13


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 16.8.2012, 15:23
Сообщение #13


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



Но если это привязанное окно перекрыто другим, то искать-то он будет в перекрытом. Т.е. привязка, как таковая, к этой функции не имеет отношения - он ищет в заданной области. И если в эту область попадет окно, где есть искомый цвет, он его найдет, независимо от привязки. А для того чтобы искать в заданном окне, как раз и введен поиск по хэндлу. Я так понимаю работу этой функции.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 16.8.2012, 15:29
Сообщение #14


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



когда задан хендл окна - findcolor ищет в указанном окне, даже если оно перекрыто.
Версию пилота уточните.

Сообщение отредактировал Zeleax - 16.8.2012, 15:30


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 16.8.2012, 15:30
Сообщение #15


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



А причем тут привязка?) Пилот - 2.31
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 16.8.2012, 15:32
Сообщение #16


***********

Модератор UOPilot
Сообщений: 9.468
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27737
Пользователь №: 11.279



если привязку используешь, то в хендл можно писать workwindow. Это зарезервированная переменная, которая содержит хендл окна к которому осуществлена привязка.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 16.8.2012, 15:39
Сообщение #17


*********

ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010
Группа: Пользователи
Наличность: 0
Из: Киев
Пользователь №: 13.093



Если отредактировать строку:
msg #hendle workwindow

значения получаются одинаковыми?


--------------------
Полезные советы - читать всем! UOWiki
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
pet
сообщение 16.8.2012, 15:39
Сообщение #18


***

Novice
Сообщений: 67
Регистрация: 4.7.2010
Группа: Пользователи
Наличность: 0
Пользователь №: 12.844



С "workwindow" тоже ничего не выходит. Окно разворачивает, но цвет не находит.
Значения одинаковые.
Код

set #hendle findwindow (Ultima Online)
msg #hendle
msg workwindow
showwindow #hendle
set $res findcolor (0, 0 800, 600 1 1 526344 %arr #hendle 1)
msg $res
set $res findcolor (0, 0 800, 600 1 1 526344 %arr 2 1)
msg $res
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 29.4.2024, 2:10
Designed by Nickostyle