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

6 страниц V < 1 2 3 4 5 > »   
Ответить в эту темуОткрыть новую тему
> Хендл окна! Баг!?,
Zeleax
сообщение 10.1.2013, 20:32
Сообщение #41


*********

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



set #handleWin GetWindow (#handleWin CHILD)
set #handleWin GetWindow (#handleWin CHILD)

Эти типа "сын сына" (IMG:style_emoticons/default/smile.gif)
Напрямую написать "внук" нельзя

Сообщение отредактировал Zeleax - 10.1.2013, 20:32


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(Санчес @ 10.1.2013, 21:29) *

зачем две одинаковых?

Потому, что расположено окно во 2 дочернем окне от главного

Код
 set #w findwindow (test.bmp)
set $a FindImage ( 0 0 1300 1300 (2.bmp) %a workwindow 70 10 15)
set $a FindImage ( 0 0 1300 1300 (2.bmp) %a #w 70 10 15)


А это, что опечатка, в первой строке картинка test.bmp, а во 2 - 3 2.bmp
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 20:42
Сообщение #43


*********

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



Цитата
А это, что опечатка, в первой строке картинка test.bmp, а во 2 - 3 2.bmp

в 1 строке ищется окно, правда привязка не сделана
а в 2-3-й ищется картинка из файла


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(Zeleax @ 10.1.2013, 21:42) *

в 1 строке ищется окно, правда привязка не сделана
а в 2-3-й ищется картинка из файла

Вот сам скрипт,без перекрытия окна картинка находится
Код

set #handleWin findwindow  (Игра - Opera)
set #handleWin GetWindow (#handleWin CHILD)
set #handleWin GetWindow (#handleWin CHILD)
set workwindow #handleWin
set #handleWin findwindow (test.bmp)
set $a FindImage ( 319, 342 417, 379 (test.bmp) %a workwindow 70 10 15)
set $a FindImage ( 319, 342 417, 379 (test.bmp) %a #handleWin 70 10 15)
if $a > 0
  msg Изображение найдено
  else
  msg Изображение не найдено
end_if
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 20:47
Сообщение #45


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



Попробую понять цель кода...
set #handleWin findwindow (Игра - Opera)
ищем окно с названием и записываем в переменную
set #handleWin GetWindow (#handleWin CHILD)
определяем хендл того же окна?
set #handleWin GetWindow (#handleWin CHILD)
еще раз...
set workwindow #handleWin
назначаем рабочее окно из переменной
set #handleWin findwindow (test.bmp)
ищем окно с названием (test.bmp) и записываем в ту же переменную что и предыдущие два,в четвертый раз
set $a FindImage ( 319, 342 417, 379 (test.bmp) %a workwindow 70 10 15)
ищем в привязаном окне по коорд. картинку (test.bmp) хотя непонятно откуда ее брать для срвнения
set $a FindImage ( 319, 342 417, 379 (test.bmp) %a #handleWin 70 10 15)
ищем непонятно что и где...
Логика кода плиз.?

про дочерние окна понял,видимо так должно быть,не знаю..
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 20:50
Сообщение #46


*********

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



set #handleWin findwindow (Игра - Opera) // ищем окно "Игра - Opera" и записываем его хендл в #handleWin
set #handleWin GetWindow (#handleWin CHILD) // ищем дочернее окно для окна с хендлом #handle и записываем хендл найденного окна в #handle
и т.п.

чтобы понять смысл - нужно разобраться с программой InqSoft WindowsScanner, в частности как устроена структура окон

Сообщение отредактировал Zeleax - 10.1.2013, 20:51


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


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



Цитата

set #handleWin GetWindow (#handleWin CHILD)
set #handleWin GetWindow (#handleWin CHILD)

Но если мы хотим дойти до "внука" то разве не надо изменить название переменной?

set #handleWinSon GetWindow (#handleWin CHILD)
"сын"
set #handleWinGrandSon GetWindow (#handleWinSon)
"внук"
???


видать я запутался...ладно,меня больше волнует ИФ цвет (IMG:style_emoticons/default/smile.gif) как с ним быть в перекрытом окне?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 20:58
Сообщение #48


*********

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



Можно изменить, но не обязательно:
Код
set #a 5
msg #a
set #a #a + 1
msg #a
end_script


Цитата
видать я запутался...ладно,меня больше волнует ИФ цвет как с ним быть в перекрытом окне?

да вот в соседней теме как раз обсуждаем такую процедуру )


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(Санчес @ 10.1.2013, 21:55) *

Но если мы хотим дойти до "внука" то разве не надо изменить название переменной?


Два чилда потому, что когда смотрим сканер видим:
1. Главное окно Игра - Opera ставим set #handleWin findwindow (Игра - Opera)
2. От него идет продолжение в дочерней папке, значит ставим set #handleWin GetWindow (#handleWin CHILD)
3. А от дочерней идет еще одна, в которой и будет наше окно,ставим еще set #handleWin GetWindow (#handleWin CHILD)
4. Завершаем set workwindow #handleWin
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 21:24
Сообщение #50


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



Цитата
Два чилда потому, что

Дошло (IMG:style_emoticons/default/smile.gif)
Цитата
да вот в соседней теме как раз обсуждаем такую процедуру )

Это в "Упростить скрипт"?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 21:26
Сообщение #51


*********

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



да


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


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



заглянул,прочитал все что написано,пока не въехал,кто нибудь ответит мне на предыдущий вопрос,почему сканер и гет виндоу пишут разные хендлы одного и того же окна,и почему с тем что выдает сканер все работает а с тем что выдает гетвиндоу - нет?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 21:49
Сообщение #53


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



wait 2000
set $w getwindow (0)
set workwindow $w
log $w 20:36:54 8 (, 3): 329276
move 1126, 526
wait 500
left 1126, 526 // по кнопке "быстро" на этой странице
stop_script

// Если курсор оставить на кнопке "рлау" пилота то мувает ниже кнопки и не тычет
// Если тыкнуть в окно(типа сделать его активным) то мувает выше кнопки и не тычет

wait 2000
set $w 8849610 // Хендл от Сканера
set workwindow $w
log $w 20:37:59 8 (, 11): 8849610
move 1126, 526
wait 500
left 1126, 526 // по той же кнопке
stop_script

// В обоих случаях и мувает и тычет
Почему???
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 22:25
Сообщение #54


*********

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



Значит привязка идет к разным окнам, расположенным в одном месте (или включающим в себя одно и то же место экрана).
Окном даже поле ввода считается или кнопка...
Возможно, что в 1-м случае к нужному окну еще следует переходить через getwindow ... CHILD/OWNER и т.д.

Сообщение отредактировал Zeleax - 10.1.2013, 22:27


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


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Код
set #a findwindow  (Игра - Opera)
set workwindow #a

Подскажите, вот так set workwindow #a работает в скрипте

Код
set #w findwindow  (Игра - Opera)
set #w GetWindow (#w CHILD)
set #w GetWindow (#w CHILD)
set workwindow #w

а вот так уже не работает, что у меня не правильно. Понимаю, что что то с чилдом путает, а как исправить не могу.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Zeleax
сообщение 10.1.2013, 22:42
Сообщение #56


*********

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



Чет я не пойму: если первый вариант работает, то зачем второй городить?

Сообщение отредактировал Zeleax - 10.1.2013, 22:42


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


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



Прав,методом тыка выяснил что гетвиндоу "тычет" в область с вкладками хрома( я так понимаю в левый верхний угол окна) и привязывает пилот к другим координатам,и мувает пилот в точку выше заданной так как сам пилот при ктрл+а в окне эти заголовки не считает...это очень плохо так как все скрипты я писал по относительным координатам которые выдавал пилот,переписывать все это просто аморально...можно ли как то "сказать" гетвиндоу "тыкать" не в угол а в центр??

Цитата
Значит привязка идет к разным окнам,
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 10.1.2013, 22:53
Сообщение #58


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(Zeleax @ 10.1.2013, 23:42) *

Чет я не пойму: если первый вариант работает, то зачем второй городить?

Во втором варианте добавлены 2 чилда, в первом их нет. пилот не видит окно со 2 вариантом. если я его ставлю в скрипт так пилот видит окно.
Код

set #w findwindow  (Игра - Opera)
set #w GetWindow (#w CHILD)
set #w GetWindow (#w CHILD)
set workwindow #w

если в скрипт вставлено set workwindow #w то пилот уже окно не видит.
Код

set workwindow #w
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
veiron
сообщение 10.1.2013, 23:06
Сообщение #59


********

Master
Сообщений: 1.264
Регистрация: 22.5.2012
Группа: Пользователи
Наличность: 0
Из: Белоруссии
Пользователь №: 14.972



Цитата(Санчес @ 10.1.2013, 22:49) *

wait 2000
set $w getwindow (0)
set workwindow $w
log $w 20:36:54 8 (, 3): 329276
move 1126, 526
wait 500
left 1126, 526 // по кнопке "быстро" на этой странице
stop_script

Сча попробовал, этот код работает только, если хэндл без чилдов, и только если мышкой кликнуть по нужному окну, а пилот запустить горячими клавишами. Как только мышкой нажал, кнопку старт в пилоте, так пилот сразу определяет свой хэндл.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Санчес
сообщение 10.1.2013, 23:18
Сообщение #60


****

Apprentice
Сообщений: 131
Регистрация: 18.12.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 15.578
Возраст: 31



Кое что выяснил,с перекрытым окном фКолор работает,подтверждено,но есть одно но:
Если написать привязку к окну и лефт,то пилот выводит привязаное окно\вкладку в браузе на передний план( даве вкладки открыты и одна из них привязана) и тычет куда указано.Если брауз свернут то разворачивает.
Теперь если о фКолоре то он не делает этого(то есть не делает активной вкладку) и соответственно не тычет.
Вывод: В перекрытых(другим браузом или фильмом на весь экран) (IMG:style_emoticons/default/smile.gif) но из других вкландок не "вытаскивает", что в принципе логично за ненадобностью,но если надо чтобы он "прыгал из вкладки во вкладку( 1 скрипт работает с одной,2 с другой) то чтобы поиск начался верно а значит надо "вытащить" вкладку на передний план(мне пока такое не нужну,но может кому пригодится,например Тебе Андрей (IMG:style_emoticons/default/smile.gif)) то достаточно написать привязку и лефт в этот хендл,главное не попасть на какую нибудь кнопку дабы не сотворить лишнего (IMG:style_emoticons/default/smile.gif)

Думаю фИмидж аналогично

Цитата
Вывод: В перекрытых(другим браузом или фильмом на весь экран) - работает,но из других вкландок не "вытаскивает", что в принципе логично за ненадобностью

Хотя было бы неплохо в соседней вкладке работает пилот,а я тем временем тут,в другой вкладке,пишу че нить (IMG:style_emoticons/default/smile.gif)
Может это можно как нибудь осуществить если методом тыка выяснено что у каждой вкладки свой хендл...
Тогда можно было бы сделать управляющий скрипт,который бы один раз записывал хендлы для разных скриптов,а другие из него "забирали" каждый свой.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

6 страниц V < 1 2 3 4 5 > » 
Ответить в эту темуОткрыть новую тему
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 

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