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

3 страниц V < 1 2 3 >  
Ответить в эту темуОткрыть новую тему
> Pilot mod pack. Расширение функционала
DarkMaster
сообщение 5.8.2024, 18:31
Сообщение #21


***********

Модератор 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____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 6.8.2024, 2:04
Сообщение #22


****

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)

работает и выдает в лог координаты окна и размер
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.8.2024, 3:01
Сообщение #23


***********

Модератор 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____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.8.2024, 17:38
Сообщение #24


***********

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



Похоже нашел в чем проблема. Ты привязку к окну при этом делаешь? У меня получилось воспроизвести ошибку только одним способом:
1) Делаем привязку к несуществующему окну.
2) вызваем клик без abs.
Собственно вполне логично выпасть в ошибку, если окно не существует. В этом была проблема?

Сообщение отредактировал DarkMaster - 6.8.2024, 17:54


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


****

Apprentice
Сообщений: 260
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1778
Пользователь №: 15.246
Возраст: 25



я всегда пытаюсь делать привязку к окну, я же говорю ошибка происходит когда привязываю с помощью wnd.workwindow(nil, "Блокнот") или wnd.workwindow("C:\\Windows\\notepad.exe"). Раз уж это привязка к материнскому окну, то при попытке сделать что-то мышкой выдает ошибку наверное потому что в этом материнском окне нет таких координат или хз. Пробовал вписать разные координаты, в том числе и 0, 0. Не знаю что в блокноте считается материнским окном, область рамки тоже не считается.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.8.2024, 18:46
Сообщение #26


***********

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



понял.
А если через tohandle в то же родительское окно?
могло ли так получиться, что ты вязал через tohandle(циферки), когда эти циферки были старыми или кривыми?
Код
wnd.workwindow("notepad.exe")
print(window)
mouse.input.left(300, 300)

у меня норм кликает. В paint.exe тоже.


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


****

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)?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.8.2024, 19:46
Сообщение #28


***********

Модератор 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____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 6.8.2024, 20:47
Сообщение #29


****

Apprentice
Сообщений: 260
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1778
Пользователь №: 15.246
Возраст: 25



да, есть такая ошибка в логе. У меня оказывается и там и там есть notepad.exe и они оба запускаются. Но если открыть файл, то запускается тот, который в system32.
Код
--lua
require"lua_system\\init"
wnd.workwindow("C:\\Windows\\System32\\notepad.exe")
time.sleep (1000)
mouse.input.left(10, 10)

этот код работает без ошибок, вот только поскольку клик в 10, 10 там где рамка, он разворачивает блокнот на весь экран как будто делает двойной клик
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 6.8.2024, 21:01
Сообщение #30


***********

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



есть такое. причем в текст если тыкает, то клик одиночный получается. странно. в event какие-то задержки лютые (ща смотрю, но отрабатывает корректно).


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


***********

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



Поправил. Там еще мышь не возвращалась в input.
Чуть поднакопятся правки - выложу обновленный пак.


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


*

Registred
Сообщений: 1
Регистрация: 21.9.2024
Группа: Пользователи
Наличность: 0
Пользователь №: 20.830
Возраст: 30



C привязкой через путь или имя окна реальная проблема. Пока корректная работа наблюдается только через pid окна. Так же давнешняя проблема, длинный путь к файлам пилот не воспринимал.

новые возможности клацать в игровом интерфейсе))) А как на счёт перетаскивания? как отказаться от медленного drag?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 21.9.2024, 9:16
Сообщение #33


***********

Модератор 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____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 24.9.2024, 1:18
Сообщение #34


****

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)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 24.9.2024, 9:33
Сообщение #35


***********

Модератор 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____
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
фонарик
сообщение 24.9.2024, 23:16
Сообщение #36


****

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) Закрывает окошко пилота и всё.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.9.2024, 0:16
Сообщение #37


***********

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



Код
--lua

require"lua_system\\init"

local arr = wnd.findwindow(nil, nil, "Notepad")
sys.lg(arr)


Код
table: 1
    class = "Notepad++"
    exe = "notepad++.exe"
    fullpath = "C:\Program Files\Notepad++\notepad++.exe"
    handle = cdata<void *>: 0x000b1454
    height = 1053
    name = "****"
    path = "C:\Program Files\Notepad++\"
    pid = 9856
    tid = 7272
    width = 1814
    x = 40
    y = 26
    Elements in table: 12

Пока тяжело понимаю, что происходит. Попробуйте открыть блокнот и выполнить мой код. Что выведет?


Цитата
У меня он не работает sad.gif Закрывает окошко пилота и всё.

Так сказать надо было. Уже бы давно поправил. Сейчас туда лезть уже код вспоминать надо. Пример дайте при котром крашит. Версию последнюю дернуть не забудьте.

Сообщение отредактировал DarkMaster - 25.9.2024, 3:09


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


****

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)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.9.2024, 22:11
Сообщение #39


***********

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



Цитата
Так я там так и написал, с примером unsure.gif

я же обновил версию после твоего поста. краш при остановке скрипта? других после обнов быть не должно. при остановке он шансовый.

Цитата
Все то же что и у вас cool.gif А вот если окошко игры искать по классу, то в handle будет пустота.

абсурд. он по этим хэндлам и перебирает. Завтра в 18 мск цепануться через anydesk дадите? Посмотрю на месте.

Сообщение отредактировал DarkMaster - 25.9.2024, 22:13


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


****

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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