Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Переключение окон в Кибор

Страниц (1): [1]
 

1. Skillem - 29 Марта, 2023 - 12:19:32 - перейти к сообщению
Всем приветы!

Подскажите, что то сам не могу понять, и не получается Недовольство, огорчение

Схема такая:

Есть окно игры window ( "Игра" ) прописано в блоке Старт. При запуске скрипт полностью выполняется -> потом я убиваю процесс в скрипте чтоб закрыть окно window ( "Игра" ) -> появляется окно лаунчера window ("Игра", "LauncherWnd", -1)
-> потом мне в лаунчере надо один раз кликнуть мышкой чтоб запустить игру обратно через некоторое время, но он не видит окно и мышка кликает по рабочему столу а не в окне лаунчера -> после запуска игры надо
чтоб скрипт продолжал работать в окне игры window ( "Игра" ). Но если я запускаю игру из лаунчера в ручную, скрипт не работает. Предпологаю что не видит окно игры.

Вопрос: Как мне активировать окно чтоб мышка кликала именно в окне лаунчера window ("Игра", "LauncherWnd", -1), и как сделать чтоб скрипт продолжал работать в окне игры window ( "Игра" ) после перезапуска?

Окно игры и окно лаунчера разные по размерам, всё делаю в Визуальном редакторе.
2. Ilya001 - 29 Марта, 2023 - 12:23:51 - перейти к сообщению
activate(/*нужное окно*/); не подойдет?

Для активации и передаче фокуса перекрытому окну или конкретному контролу существует функция:
activate(wind);
В виде параметра принимает указатель на окно.
3. Skillem - 29 Марта, 2023 - 13:40:31 - перейти к сообщению
 Ilya001 пишет:
activate(/*нужное окно*/); не подойдет?

Для активации и передаче фокуса перекрытому окну или конкретному контролу существует функция:
activate(wind);
В виде параметра принимает указатель на окно.


Неа, не хочет.
Я что то не могу понять что нужно написать в блок-кода перед действиями чтоб именно в нужное окно были эти действия Недовольство, огорчение
4. Geoteh - 30 Марта, 2023 - 01:48:27 - перейти к сообщению
несколько тем ниже я тоже спрашивал о чем то похожем ))) как мне подсказал Zireael и получилось решить.

в блоке старт пишешь указатель на основное окно игры ( именно окно не контрал )
---> выполняешь свой скрипт
---> перед окном где нужно переключится делаем блок кода и там прописываем такую штуку
CODE:
win w = window ("-1, -1, -1); // указатель на другое окно
if(w)
{
activate(w); // активировать окно
}
else messagebox("Окно не найдено");
W_R= window ("-1, -1, -1); // указатель на другое окно


это чтобы его активировать
---> теперь чтоб выполнить действия к примеру щёлкнуть мышкой в координатах в блоке с мышкой в параметре (указатель на окно) стоит W_Kib меняем на W_R и все остальное что должно выполнятся в этом окне меняем на W_R

---> чтоб переключится снова на основной скрипт и продолжать работу делаем снова блок кода и там вставляем
CODE:
activate(W_Kib);
так он продолжает основную работу
5. Skillem - 30 Марта, 2023 - 14:40:55 - перейти к сообщению
 Geoteh пишет:
несколько тем ниже я тоже спрашивал о чем то похожем ))) как мне подсказал Zireael и получилось решить.

в блоке старт пишешь указатель на основное окно игры ( именно окно не контрал )
---> выполняешь свой скрипт
---> перед окном где нужно переключится делаем блок кода и там прописываем такую штуку
CODE:
win w = window ("-1, -1, -1); // указатель на другое окно
if(w)
{
activate(w); // активировать окно
}
else messagebox("Окно не найдено");
W_R= window ("-1, -1, -1); // указатель на другое окно




это чтобы его активировать
---> теперь чтоб выполнить действия к примеру щёлкнуть мышкой в координатах в блоке с мышкой в параметре (указатель на окно) стоит W_Kib меняем на W_R и все остальное что должно выполнятся в этом окне меняем на W_R

---> чтоб переключится снова на основной скрипт и продолжать работу делаем снова блок кода и там вставляем
CODE:
activate(W_Kib);
так он продолжает основную работу



А привязку какую делаешь: По выбору, Активный по указателю?
Я если делаю Активный по указателю он мне автоматически выставляет W_Kib вместо W_R
(Добавление)
CODE:
win w = window ("-1, -1, -1); // указатель на другое окно
if(w)
{
activate(w); // активировать окно
}
else messagebox("Окно не найдено");
W_R= window ("-1, -1, -1); // указатель на другое окно


Этот код сработал, спасибо большое!!


CODE:
activate(W_Kib);


А этот код что то не работает, всё равно кликает по рабочему столу и не активирует окно из блока старт, хотя изначально в нём работает. Недовольство, огорчение

Powered by ExBB FM 1.0 Final