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

 
Ответить в эту темуОткрыть новую тему
> send в неактивное окно, форум уже перекурил
Зелёный суслик
сообщение 20.1.2018, 9:22
Сообщение #1


*

Registred
Сообщений: 3
Регистрация: 20.1.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.796
Возраст: 35



Всем большой привет!

Прошу помощи,
Win10 x64
UoPilot от администратора
Игра Life is Feudal в оконном режиме

Скрипт работает только когда окно игры активно

перенос на другой монитор, на другой рабочий стол не помогают.
Хендл окна определяется, в логе совпадает с тем, что надо.
если я делаю
showwindow #game (тут хендл окна игры)
то естественно игра выходит на передний план, рабочий стол меняется на тот, где игра, и нажимается всё что должно нажаться.
если окно с игрой неактивно - то ничего не работает.

определение цвета происходит только тогда, когда UoPilot и игра находятся на в данный момент активном одном рабочем столе, когда я переключаюсь на другой рабочий стол, скрипт цвет не находит.
Так-же он его не находит, если пилот на одном столе, игра на другом.
проблема в том, что даже когда они на одном, рабочем столе, то "left" "send" не работают, пока не сделаешь вызов окна showwindow


Код

set #game findwindow (Life is)
set workwindow #game
if 294, 860 2631720
showwindow #game
send 1
end_if
wait 60000


переписал код на поиск цвета конкретно в окне, так оно работает даже когда игра на другом рабочем столе
но "send 1" всё равно не работает.

Код

set #game findwindow (Life is)
set workwindow #game
get color #a 294 860 #game
log #a
if #a = 2631720
send 1
end_if
wait 60000


Перекурил форум несколько раз, ну никак не могу заставить кликать в неактивном окне.
даже скрипт от DarkMaster'а запускал, думал может игра - дочернее окно в окне, но нет.
Буду благодарен за любой совет.
Заранее огроменное спасибо!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 20.1.2018, 12:02
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Проверять работает ли нажатие клавиш лучше без условий.
Код
// привязались к окну ctrl+a
send 1

Также можно попробовать:
Код
send217 1
// или
send_down 1
wait 100
send_up 1

Попробовать нажимать другие клавиши, буквы, F1.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Зелёный суслик
сообщение 20.1.2018, 12:58
Сообщение #3


*

Registred
Сообщений: 3
Регистрация: 20.1.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.796
Возраст: 35



Да, так тоже проверял.
альтернативные команды не работают.
но как я писал выше, когда окно активное - тогда всё нажимается и работает.
даже если убрать все условия, когда окно с игрой НЕ активно - то инпуты не работают. ни мышки ни клавиатуры (IMG:style_emoticons/default/sad.gif)

так работать будет
Код
set #game findwindow (Life is)
set workwindow #game
showwindow #game
send 1


так работать не будет
Код
set #game findwindow (Life is)
set workwindow #game
send 1


а мне бы хотелось что бы оно нажималось когда игра в фоне... но так и не победил.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 20.1.2018, 13:34
Сообщение #4


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Если попробовать установить окно поверх всех?
Код
set #game findwindow (Life is)
set workwindow #game
set windowpos -1 -1 -1 2 workwindow  // установить окно поверх всех
wait 500
send 1
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Зелёный суслик
сообщение 20.1.2018, 17:12
Сообщение #5


*

Registred
Сообщений: 3
Регистрация: 20.1.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.796
Возраст: 35



спасибо, попробовал, но по сути он просто делает окно активным.
так-же как и
showwindow #game
а всё же хотел что бы он нажимал кнопку не делая его активным. в фоне нажимал. ну или на другом рабочем столе, не переключая меня на тот рабочий стол. с этим скриптом он тоже переключает меня на тот рабочий стол где игра.
попробовал использовать значение BOTTOM в надежде что он его скроет назад и фокус с окна снимется, но нет (IMG:style_emoticons/default/smile.gif) оно сзади оказывается, но активно. ч0рт.
тут вся беда в том, что я допустим могу что-то в это время набирать на компе, когда скрипт отрабатывать будет, ну вы поняли (IMG:style_emoticons/default/smile.gif)
я так понял это какая-то фича/бага этой конкретной игры. ну что-ж, думаю проще будет когда условия проверятся, перед выполнением инпутов что бы он мне алярму звуком делал, и я на это время останавливался что-то делать на компе на пару секунд, пока скрипт отработает (IMG:style_emoticons/default/smile.gif)
в любом случае спасибо за помощь!
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shost
сообщение 15.2.2018, 3:25
Сообщение #6


*

Registred
Сообщений: 2
Регистрация: 15.2.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.832
Возраст: 34



Не мог понять почему не работает пилот, оказалось пилот жмет кнопки 1 2 3 через команду sendex (send не работает). Но главная проблема что он не захватывает окна, включаю макрос он работает только если выделить окно (IMG:style_emoticons/default/sad.gif) последний раз пользовался им очень давно и скрипты работали на неактивные окна. (Win7 64 Максимальная)
Проверил команду как писали выше send217 заработало в не активном окне блокнота, в игре не сработало. Буду пробовать дальше...
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Shost
сообщение 15.2.2018, 5:01
Сообщение #7


*

Registred
Сообщений: 2
Регистрация: 15.2.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 18.832
Возраст: 34



Код
set #game findwindow (Tree Of Savior)
set workwindow #game
showwindow #game
wait 200
sendex 1
wait 10000



Сделал такой макрос (работает), но хотелось бы знать почему не жмет send в неактивном/активном окне?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 15.2.2018, 11:16
Сообщение #8


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Зависит от приложения, не везде работает.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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