|
|
  |
Новая Версия Uopilot V.2.31 (15.08.2012), Оффициальный сайт. Скачать. Последняя версия. |
|
|
_LESTAT_ |
21.10.2012, 18:00
|
   
Apprentice
Сообщений: 103
Регистрация: 12.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.512
Возраст: 25

|
Последнее время замучился с хинтами, то появляютсья как надо, а то совсем не в том месте куда указывают координаты, я даже специально переменные вкоторых записаны координаты куда хинтить в лог выводил, прямо перед хинтом , в логе все верно, проверял, а хинт всеравно появляеться совсем не в том месте где надо. Добавлено на следующий день: С хинтами разобрался, просто они появляются по абсолютным координатом, хотя в скрипте и указано рабочее окно, а так же не стоит abs , приходиться определять размеры и положение рабочего окна и добавлять позицию окна к относительной позиции места где должен появится хинт. Так же скрипты вов ремя работы продолжают вывлетать сошибками вабсолютно случайных местах, при этом в скрипте ошибок нет. Пришлось заводить специальный скрипт который отлавливает появление окон с ошибками , закрывает их и перезапускает скрипт. Цитата set #em findwindow (UoPilot Message ) //Поиск информационных окон, об ошибках в скриптах if #em > 0 //pause_script 4 showwindow #em sendex {Enter} //@{F4} //Посылаем Enter в такие окна wait 3s set #er #er + 1 set logging Вылезло #er -ое окно с ошибкой скрипта, закрываем. //alarm start_script 0 set #em 0 end_if wait 2s
|
|
|
|
xolost |
22.10.2012, 10:21
|
     
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035

|
По-поводу хендла. https://forum.uokit.com/index.php?showtopic=24803Суть этой функции(указывание хендла) - в автоматическом режиме - нашел, привязался, работаем. А если это не работает и что бы работало, нужно запускать доп. софт что бы узнать дочерний фигерний хендл (истинный), который потом указываем в пилоте, что бы пилот привязался к нему, или писать скрипт как в последнем посте по ссылке выше - это баг, и даже, я бы сказал - бред. С таким же успехом, проще написать скрипт, который будет эмулировать ctrl+a, что бы всё работало. Более того, если ctrl+a за микросекунду успешно вяжется к любому приложению, лишь наведя мышку на окно нужное, то и поиск автоматический тоже должен вполне уметь это делать сам. (это логично). p.s. наткнулся на эту ссылку https://forum.uokit.com/index.php?showtopic=24803со 2 по 4 страницу парнишка пытается привязаться... такая же проблема. 3 страницы парился с этой привязкой! и напряг всех вокруг. В итоге у него получился громоский скрипт, который ещё и кликает и ещё что-то делает(жуть вообщем), что бы привязаться. Этого быть не должно... Кнайт, пожалуйста, порадуй нас - нубов, скажи, что подумаешь как это исправить... спасибо!
|
|
|
|
DarkMaster |
22.10.2012, 13:27
|
          
Модератор UOPilot
Сообщений: 9.745
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29676
Пользователь №: 11.279

|
Цитата А если это не работает и что бы работало, нужно запускать доп. софт что бы узнать дочерний фигерний хендл (истинный), который потом указываем в пилоте, что бы пилот привязался к нему, или писать скрипт как в последнем посте по ссылке выше - это баг, и даже, я бы сказал - бред. И что страшного в том, чтобы один раз посмотреть, где в дереве находится окно? Потом get window и все работает. // Ты дал не ту ссылку.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
xolost |
22.10.2012, 14:43
|
     
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035

|
Цитата(WKnight @ 22.10.2012, 12:59)  Радую, но другим способом WindowFromCursor WindowFromPoint
Порадовал(IMG: style_emoticons/default/smile.gif) WindowFromCursor - супер, сойдет решение.. WindowFromPoint - не нашел описания нигде... догадываюсь что делает, но всё же, пример бы... если не трудно. Спасибо! И что страшного в том, чтобы один раз посмотреть, где в дереве находится окно? Потом get window и все работает.Как минимум в том, что без этого софта не заставить работать, как сказано в описании команды пилота. Пример мой собственный - у меня не работает этот виндовсканер, значит я в пролете по такой схеме. А в описании сказано:Привязка к окну: нет. Работа со свернутым окном: да. FindWindow (<заголовок окна | PID>) <заголовок окна> - полное название окна либо его часть. <PID> - номер идентификатора процесса. Указывается только один из параметров: либо заголовок, либо PID, но не оба сразу. Порядок поиска следующий: 1. ищем указанную строку в качестве точного названия окон 2. в качестве класса окон 3. в начале названия окон 4. в середине названий окон 5. в качестве 'pid' окнаПримеры set #handleWin findwindow (Lineage II) set workwindow #handleWin UOPilot привяжется к последнему активному окну Lineage 2
Тут ведь не сказано, что 100% окон не будет привязываться и поэтому не забывайте качать, устанавливать, запускать виндсканер - искать им хендл и т.д. и т.п. Давай будем честны, всё должно работать хорошо, стремиться нужно к автоматизации, я уверен, если кнайт найдет время, поставит пару запятых где нужно и 90%+ окон будет находиться автоматом, как изначально и было запланировано. // Ты дал не ту ссылку. Ссылку верную дал.. что бы было понятно почему я ною и пример последнего поста со скриптом по поиску от Лестата на 30+ строчек... - ну это же жесть..
|
|
|
|
_LESTAT_ |
22.10.2012, 15:52
|
   
Apprentice
Сообщений: 103
Регистрация: 12.3.2011 Группа: Пользователи Наличность: 0
Пользователь №: 13.512
Возраст: 25

|
Цитата А если это не работает и что бы работало, нужно запускать доп. софт что бы узнать дочерний фигерний хендл (истинный), который потом указываем в пилоте, что бы пилот привязался к нему, или писать скрипт как в последнем посте по ссылке выше - это баг, и даже, я бы сказал - бред. Что не так с моим способом, я вам даже пример рабочий для блокнота написал. Плюсы его в том, что мышь не задействуется. Минусфы, что занимает чуть побольше, и всего один разок, надо узнать расположение нужного дочернего в дереве окон приложений, что занимает не больше минуты с помощью Window Scaner. Насчет последнего моего примера, так он такой большой потому, что нужное рабочее окно меняет свою позицию случайно после каждого перезапуска приложения. Потому я и перебираю все возможные позиции и ищю в них нужный фрагмент картинки, который точно есть в игровом дочернем окне, которое мне и нужно. И проще этот процесс тебе никто не сделает, хочешь автоматизации ?? прописывай все возможные варианты как и я. Хотя и его можно урезать for'м, заставив проверять не определенные места, а все возможные, если перебирать все окна подряд. Пока хадл не равен 0 идем вперед(нестим, чилдим), как стал равен, разворачиваемся шаг назад и идем дальше другим путем.
|
|
|
|
WKnight |
22.10.2012, 16:21
|
       
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688

|
Цитата WindowFromPoint - не нашел описания нигде... Единственый официальный источник это хистори встроенное в пилот. Благодарными энтузиастами поддерживается Вики, основанная на этом хистори. Либо там, либо там, обязательно должно быть хоть какое-то описание. Если его нет ни там, ни там, то это нонсенс типа команды eval... Цитата Давай будем честны, всё должно работать хорошо Стремимся к этому, можно сказать, всеми силами, но не все нам подвластно... Кроме того "многа букаф", в настоящий момент сильно осложняют понимание написанного, читать долго (IMG: style_emoticons/default/smile.gif)
|
|
|
|
xolost |
22.10.2012, 16:46
|
     
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035

|
Понял что по-поводу хендла я уже не смогу убедить, все самые клёвые доводы уже выдал(IMG: style_emoticons/default/smile.gif) Тогда забыли про него и вернемся к WindowFromPoint - не нашел описания нигде... Единственый официальный источник это хистори встроенное в пилот. Благодарными энтузиастами поддерживается Вики, основанная на этом хистори. Либо там, либо там, обязательно должно быть хоть какое-то описание. Если его нет ни там, ни там, то это нонсенс типа команды eval...В том и штука, что ни в вике, ни в хистори пилота не нашел. даже попробовал загуглить, там к уопилоту не находит такой команды.. Может напишешь здесь как эта команда работает?
|
|
|
|
xolost |
22.10.2012, 18:17
|
     
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035

|
Пожалуйста, не надо ругаться. Хорошо, я изменю метод изложения информации.
-Я обычный юзер, немного знаком с уопилот. -Вдруг, в один день узнаю что существует оператор findwindow -Лезу в описание оператора в вики, читаю и вижу:
FindWindow (<заголовок окна | PID>) <заголовок окна> - полное название окна либо его часть. <PID> - номер идентификатора процесса. Указывается только один из параметров: либо заголовок, либо PID, но не оба сразу. Порядок поиска следующий: 1. ищем указанную строку в качестве точного названия окон 2. в качестве класса окон 3. в начале названия окон 4. в середине названий окон 5. в качестве 'pid' окна
[править] Примеры set #handleWin findwindow (Lineage II) set workwindow #handleWin UOPilot привяжется к последнему активному окну Lineage 2.
И вот как обычный юзер, я понимаю, что я создаю например Гр<вырезано анти-матом> блокнот, с гребаным названием "Test13452345345276567 - блокнот" Т.е. заголовок этого гребаного блокнота - поясню - "Test13452345345276567 - блокнот" (без кавычек) И вот я открываю этот блокнот, получается что он у меня открыт на раб. столе и одном экземпляре!!!!! Теперь возвращаюсь к описанию и подставляю этот гр<вырезано анти-матом> заголовок
Запускаю и нифига не привязывается! Я пробую второй вариант - узнаю PID этого гребаного блокнота открытого через ПИЛОТ!!!(кнопка при клике по ней выпадает меню с пидами всех процессов запущенных - нахожу нужный по названию приложения - вбиваю в код и опять вижу что нифига не работает!!!!
Какой вывод я делаю!? - Либо описание неверное, либо этот оператор НЕ- -РА-БО-ТА-ЕТ
Я не хочу ругаться, если и сейчас не понятно о чем я говорю, просто давай забудем об этой штуке и всё....
|
|
|
|
xolost |
26.10.2012, 22:39
|
     
Expert
Сообщений: 517
Регистрация: 17.6.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.035

|
Цитата(DarkMaster @ 24.10.2012, 15:17)  log [ 1 1 ]
Первая скобка игнорируется и в лог не выводится.
Ага, старый баг, хотел о нем написать, но всё откладывал на потом.. ну да ладно. А хотите крутятский баг?))) while #x = #x1 or #y = #y1 or перепутано с and т.е. что бы было or нужно писать and и наоборот.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|