Версия для печати темы
UoKit.com Форумы _ UO Pilot _ как указать хендл окна-цели при запуске из параметров командной строки?
Автор: trico 1.3.2020, 8:48
вот тут все отлично
Код
а как же хендл цели указать?
Автор: cirus 1.3.2020, 10:25
Вначале скрипта:
Код
set #handle findwindow (Lineage II) // найти окно
set workwindow #handle // сделать его рабочим
Автор: trico 1.3.2020, 12:05
Цитата(cirus @ 1.3.2020, 9:25)
Вначале скрипта:
Код
set #handle findwindow (Lineage II) // найти окно
set workwindow #handle // сделать его рабочим
печаль, это и так понятно было. надо допилить пилот чтобы с параметров командной строки можно было тыкнуть пилоту не только какую вкладку со скриптом запустить но и хендл рабочего окна.
через костыль не хотелось делать.
есть игра, запускаем 3 копии, получаем 3 хендла. запускаем программно на каждое окно игры свою копию пилота, цепляем к окну и запускаем скрипт. это все происходит по условию отключения от сервера. то есть полностью автоматически.
За состоянием окон игры и рабочих копий пилота следит один макрос - он же все перезапускает при необходимости. Но при рестарте все хендлы изменились. а caption окна игры выглядит так: "GAME #handle"
кажется findwindow тут не при чем
Автор: cirus 1.3.2020, 12:13
Цитата
но и хендл рабочего окна.
Он меняется при каждом запуске приложения.
Цитата
через костыль не хотелось делать.
Какой костыль? 2 строчки чтобы найти и привязать нужное окно?
Автор: trico 1.3.2020, 12:21
вариантов выстругать костыль много - от сохранения хендлов в файл и считывания потом рабочим скриптом до редактирования файла макроса на предмет правильного хендла. но как-то не красиво ....
Цитата(cirus @ 1.3.2020, 11:13)
Какой костыль? 2 строчки чтобы найти и привязать нужное окно?
ок, у вас есть три окна игры: "game #124578", "game #3654981", "game #8463216"
скрипт пилота который их породил через exec () знает их хэндлы, как привязать каждому окну игры и запустить в них файл скрипта фарм.тхт ?????
ведь файл фарм.тхт не знает их хэндлы и не знает заголовки, а прописать просто findwindow (game) - мы привяжем все три скрипта к одному из окон.
задача запустить через exec () новый пилот и указать ему цель - окно игры и нужный скрипт
Автор: cirus 1.3.2020, 12:37
Цитата
findwindow (game) - мы привяжем все три скрипта к одному из окон.
Код
set %handle findwindow(game)
log clear
log mode compact
for #i 1 size(%handle)
log %handle[#i 1] %handle[#i 2]
end_for
// т. е:
// %handle[1 1] - хендл первого окна
// %handle[2 1] - хендл второго
// %handle[3 1] - хендл третьего
end_script
Автор: trico 1.3.2020, 12:43
Цитата(cirus @ 1.3.2020, 11:37)
Код
set %handle findwindow(game)
log clear
log mode compact
for #i 1 size(%handle)
log %handle[#i 1] %handle[#i 2]
end_for
// т. е:
// %handle[1 1] - хендл первого окна
// %handle[2 1] - хендл второго
// %handle[3 1] - хендл третьего
end_script
Цитата
скрипт пилота который их породил через exec () знает их хэндлы
поэтому искать их нет необходимости.
Цитата
файл фарм.тхт не знает их хэндлы и не знает заголовки
а вот этому как объяснить кто цель? и по теме топика - указать цендл при запуске из командной строки.
я так понял что только через костыль на данный момент. но добавить новую функцию в пилот не помешало бы.
спасибо cirus за внимание к моему вопросу
Автор: Сашкоу 26.2.2021, 22:16
Немного подниму тему, ситуация похожая: имеется 2 запущенных копии приложения(handle 111111 и 222222), в неактивном необходимо нажимать "пробел". Прописываю так:
Код
set workwindow 222222
sendex_down {Spacebar}
sendex_up {Spacebar}
Если делаю активным окно с handle 111111, то handle 222222 перестает работать и работает 111111
Автор: Fors1k 26.2.2021, 22:32
Цитата(Сашкоу @ 26.2.2021, 22:16)
в неактивном необходимо нажимать "пробел". Прописываю так: sendex_down {Spacebar}
Читайте
- Введение в скриптинг
- Список функций
- ...
https://forum.uokit.com/index.php?showtopic=70302
Автор: Сашкоу 27.2.2021, 1:14
Цитата(Fors1k @ 26.2.2021, 21:32)
Читайте
Спасибо. Скорее не "только в активном окне", а "работает в активном окне, независимо от окна, к которому привязано"
Автор: cirus 27.2.2021, 1:33
Цитата
в неактивном необходимо нажимать "пробел"
Используйте что-то из этого:
send
send217
send_down/send_up
send217_down/send217_up
Автор: Сашкоу 27.2.2021, 2:14
Цитата(cirus @ 27.2.2021, 0:33)
Используйте что-то из этого:
send
send217
send_down/send_up
send217_down/send217_up
Гадких защит понаставили, что не работают так половина кнопок
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)