|
|
  |
Pilot mod pack. Расширение функционала |
|
|
DarkMaster |
5.8.2024, 18:31
|
          
Модератор UOPilot
Сообщений: 9.737
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29638
Пользователь №: 11.279

|
Цитата wnd.workwindow("") он найдет основное окно. там же нужно отправлять нажатия в дочернее. это не проканает и с обычным findwindow+workwindow пилота. по крайней мере по части send/post, возможно то, что он шлет дополнительно в виде say пройдет, но это другая история и шанс очень невилик. Цитата или просто ctrl + a(наводил на чистый лист в блокноте и пэинте и получал хэндл тот при котором работает если привязать командой window = wnd.tohandle(132756)) очень долго пытался понять когда работает, а когда нет. не получилось. расшифруй, пожалуйста. Цитата mouse.input выдает одинаковую ошибку с кликами и перемещением а window точно задан при этом? "abs" если включить проблемы нет? вообще судя по ошибке он не может получить координаты целевого окна. local pos = wnd.windowpos(handle) вот эта функция у тебя работает(отдельно вызови)? Передача в нее предполагает хэндл в cdata, т.е. либо заранее задаешь window, либо вызов принимает вид: Код local pos = wnd.windowpos(wnd.tohandle(циферки)) sys.lg(pos) -- результат в логе. Цитата Кстати у меня пилот 2.42, не помню где качал его, а на форуме тут последняя 2.41 почему то, какой лучше использовать? последняя 2.42. На странице пилота именно она. Сообщение отредактировал DarkMaster - 5.8.2024, 18:25
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
nykep |
6.8.2024, 2:04
|
   
Apprentice
Сообщений: 260
Регистрация: 1.9.2012 Группа: Пользователи Наличность: 1778
Пользователь №: 15.246
Возраст: 25

|
Короче говоря window = wnd.tohandle(132756) привязывает и работает. Привязка с помощью wnd.workwindow(nil, "Блокнот"), wnd.workwindow("C:\\Windows\\notepad.exe") и просто ctrl + А видимо не работают и при этом команды для мышки с input выдают ошибку. Если добавить "abs" , то ошибок не выдает, но работает только input. Код --lua require"lua_system\\init" local pos = wnd.windowpos(wnd.tohandle(394792)) sys.lg(pos) работает и выдает в лог координаты окна и размер
|
|
|
|
DarkMaster |
6.8.2024, 3:01
|
          
Модератор UOPilot
Сообщений: 9.737
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29638
Пользователь №: 11.279

|
Цитата Привязка с помощью wnd.workwindow(nil, "Блокнот"), wnd.workwindow("C:\\Windows\\notepad.exe") и просто ctrl + А видимо не работают первые два и не должны ибо там нужно привязывать к дочерним. Ctrl+A из этого модуля к сожалению не доступен и доступен быть не может. Либо возврат к workwindow, а с ним куча проблем. Окошки никто писать не хочет, у меня с этим беда, пишу пока потрашки. Цитата работает и выдает в лог координаты окна и размер вот это уже очень странно. в рамках input он ничего не выдает, а тут выдает... Запсукал несколько раз у себя. Пока понимания, что именно происходит нет. У меня шуршит... Проснусь - буду смотреть. Огромное спасибо за помощь! Стараюсь максимально быстро фиксить. Сообщение отредактировал DarkMaster - 6.8.2024, 3:02
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
nykep |
6.8.2024, 19:29
|
   
Apprentice
Сообщений: 260
Регистрация: 1.9.2012 Группа: Пользователи Наличность: 1778
Пользователь №: 15.246
Возраст: 25

|
ошибка происходит когда я не использую handle. Вот весь код, который выдает ошибку Код --lua require"lua_system\\init" wnd.workwindow("C:\\Windows\\notepad.exe") time.sleep (1000) mouse.input.left(10, 9) Код wnd.workwindow("notepad.exe") print(window) mouse.input.left(300, 300) этот вариант работает без ошибок, но только input, post ничего не делает. А что такое print(window)?
|
|
|
|
DarkMaster |
6.8.2024, 19:46
|
          
Модератор UOPilot
Сообщений: 9.737
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29638
Пользователь №: 11.279

|
Warning, can't apply a workwindow. 0 ERROR_SUCCESS а вот это в лог не падало? У меня блокнот лежит в system32 C:\Windows\System32\notepad.exe походу путь битый был. Цитата А что такое print(window)? window это переменная по типу workwindow(), но это не функция, а именно переменная. print - вывод в лог. Родной, луашный. в пилоте будет работать как log() Цитата этот вариант работает без ошибок, но только input, post ничего не делает посту родительское окно не прокатит. ему нужно точно то окно с которым взаимодействуешь. Стандартные виндовые приложения очень сильно грешат количеством дочерних окон.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
DarkMaster |
21.9.2024, 9:16
|
          
Модератор UOPilot
Сообщений: 9.737
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29638
Пользователь №: 11.279

|
Цитата C привязкой через путь или имя окна реальная проблема. Код можно? И фактическое имя окна. Очень сложно по такому описанию понять в чем именно проблема. У меня с привязкой проблем не было. Так же нужно понимать, что привязка окна модулей и привязка пилота - это два разных процесса. Цитата Так же давнешняя проблема, длинный путь к файлам пилот не воспринимал. пример для воспроизведения? Цитата А как на счёт перетаскивания? как отказаться от медленного drag? drag в windows не существует. Это не более чем обертка над left, move. По сути этот драг пишется в пару строк: Код local drag = function(x1, y1, x2, y2) mouse.input.move(x1, y1) -- может быть не нужен. завист от настроек и приложения mouse.input.left_down(x1, y1) mouse.input.move(x2, y2) -- может быть не нужен. завист от настроек и приложения mouse.input.left_up(x2, y2) end time.sleep() добавить между строками до состояния работоспособности. Причина почему нет drag из коробки - индивидуальность. По сути каждом приложению нужен разный подход. Какому-то нужны move, какому-то нет, так же это зависит от метода, размер задержек зависит от приложения, железа, методов. Т.е. по сути тут рабочее состояние нужно тупо подбирать. Альтернатива - везде делать move, делать большие задержки чтобы работало с запасом. Итог текущий встроенный drag тормоз. Я подумаю, что с этим можно сделать, но сразу говорю чудо не случится и в корне все решить не возможно.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
фонарик |
24.9.2024, 1:18
|
   
Apprentice
Сообщений: 160
Регистрация: 23.11.2011 Группа: Пользователи Наличность: 0
Пользователь №: 14.305

|
Здравствуйте. Подскажите пожалуйста, а такие функции как hint и prompt они тоже планируются в этом расширенном функционале? Или губёшки можно не раскатывать (IMG: style_emoticons/default/biggrin.gif) А еще, подскажите пожалуйста, Код --lua log 'clear' log 'mode compact' require"lua_system\\init" result = wnd.findwindow(nil, nil, 'Game Engine', nil, nil)
log(result[1].handle) -- хэндл окна log(result[1].name) -- имя окна log(result[1].class) -- имя класса окна log(result[1].x) -- x координата левой границы окна log(result[1].y) -- y координата верхней границы окна log(result[1].width) -- ширина окна log(result[1].height) -- высота окна log(result[1].pid) -- pid окна log(result[1].tid) -- tid окна log(result[1].exe) -- имя файла log(result[1].path) -- путь к каталогу с файлом log(result[1].fullpath) -- полный путь к exe Параметр handle выдаёт почему-то пустое поле (IMG: style_emoticons/default/unsure.gif) Там вроде должно быть числовое значение окошка. Остальное всё показывает правильно (IMG: style_emoticons/default/cool.gif)
|
|
|
|
DarkMaster |
24.9.2024, 9:33
|
          
Модератор UOPilot
Сообщений: 9.737
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 29638
Пользователь №: 11.279

|
Цитата Здравствуйте. Подскажите пожалуйста, а такие функции как hint и prompt они тоже планируются в этом расширенном функционале? Или губёшки можно не раскатывать так я же выкладывал хинт. промпт не уверен. создание интерфейсов меня сильно напрягает. это очень далеко от меня, но исключать не буду. Цитата Параметр handle выдаёт почему-то пустое поле оно cdata должно быть, а не number. log(tonumber(result[1].handle)) Цитата result = wnd.findwindow(nil, nil, 'Game Engine', nil, nil) хвостик можно не писать. result = wnd.findwindow(nil, nil, 'Game Engine') тоже самое.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
фонарик |
24.9.2024, 23:16
|
   
Apprentice
Сообщений: 160
Регистрация: 23.11.2011 Группа: Пользователи Наличность: 0
Пользователь №: 14.305

|
Цитата(DarkMaster @ 24.9.2024, 9:33)  оно cdata должно быть, а не number. log(tonumber(result[1].handle)) А так пишется в лог nil (IMG: style_emoticons/default/unsure.gif) Цитата(DarkMaster @ 24.9.2024, 9:33)  так я же выкладывал хинт. У меня он не работает (IMG: style_emoticons/default/sad.gif) Закрывает окошко пилота и всё.
|
|
|
|
фонарик |
25.9.2024, 21:36
|
   
Apprentice
Сообщений: 160
Регистрация: 23.11.2011 Группа: Пользователи Наличность: 0
Пользователь №: 14.305

|
Цитата(DarkMaster @ 25.9.2024, 0:16)  Попробуйте открыть блокнот и выполнить мой код. Что выведет? Все то же что и у вас (IMG: style_emoticons/default/cool.gif) А вот если окошко игры искать по классу, то в handle будет пустота. Цитата(DarkMaster @ 25.9.2024, 0:16)  Так сказать надо было. Уже бы давно поправил. Так я там так и написал, с примером (IMG: style_emoticons/default/unsure.gif)
|
|
|
|
фонарик |
25.9.2024, 22:48
|
   
Apprentice
Сообщений: 160
Регистрация: 23.11.2011 Группа: Пользователи Наличность: 0
Пользователь №: 14.305

|
Цитата(DarkMaster @ 25.9.2024, 22:11)  я же обновил версию после твоего поста. краш при остановке скрипта? других после обнов быть не должно. при остановке он шансовый.  Цитата(DarkMaster @ 25.9.2024, 22:11)  абсурд. он по этим хэндлам и перебирает. Если лог вывести командой sys.lg(result), то тогда там есть параметр handle и значение у него есть: handle = cdata<void *>: 0x000d042e Но команда log(result[1].handle) выводит пустоту (IMG: style_emoticons/default/unsure.gif) Может тут тоже что-нибудь волшебное надо дописать (IMG: style_emoticons/default/laugh.gif) log(tonumber(result[1].handle)) выводит nil
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|