Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ как указать хендл окна-цели при запуске из параметров командной строки?

Автор: trico 1.3.2020, 8:48

вот тут все отлично

Код

UoPilot.exe /r0


а как же хендл цели указать? blink.gif

Автор: 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 за внимание к моему вопросу smile.gif

Автор: Сашкоу 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

Гадких защит понаставили, что не работают так половина кнопок dry.gif

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)