Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Как создать блок кода в виз. редакторе, который будет работать с контролом, не относяшемуся к остальному коду?
Fen
Отправлено: 05 Октября, 2024 - 19:52:10
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 36
Дата рег-ции: Июль 2024  
Репутация: 0




Есть полноценно работающий скрипт бота. Появилась необходимость вставить в него, в определенном месте, запуск стороннего файла, в графической оболочке которого, надо нажать некоторые кнопки, чтоб он выполнил необходимую задачу в нужное время при появлении тригерного изображения.

Проблема в том, что, когда произвожу его запуск, функции, которые должны выполнять разного рода действия, не видят окно с программой вызываемой этим файлом. Ведь как я понимаю, надо создать еще одну переменную, аналогичную W_kib и назначить ей значение конрола, с которым будет происходить работа. Методом тыка, перепробовал все! И запускал процесс, в его свойствах прописывал, что указатель на контрол будет записываться в переменную W_kib1 (параллельно с W_kib, в которой указатель на основное окно для работы скрипта) и, соответственно в блоках кодах, вместо W_kib прописывал W_kib1... Ну и подобные, всякие манипуляции, которые, как мне кажется, являются кандидатами на решение. К сожалению, у меня нет достаточного количества знаний программирования, чтоб интуитивно понять механизм проблемы, приходится тыркаться, как слепой котенок.

Объясните пожалуйста, как реализовать данную задачу.
 
 Top
Kibor
Отправлено: 08 Октября, 2024 - 20:56:38
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8362
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Мало указать другую переменную. Надо в нее получить указатель на окно.
Опишите полностью действия и что за окно.
 
 Top
Fen
Отправлено: 13 Октября, 2024 - 23:02:02
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 36
Дата рег-ции: Июль 2024  
Репутация: 0




Да вот, мне бы, как раз и хотелось узнать последовательность действий для реализации того, что я описал. Ну если быть точнее, то: выполняется последовательность блоков в визуальном редакторе и, предположим выскакивает капча, которая определившись функцией FindImage, запускает процесс виндовс (тут мне тоже не совсем понятно, что прописывать в свойствах функции StartProcess). Он имеет графическую оболочку, в которой надо нажать некоторые кнопки. Или конкретно написать название программы и как ее видит Кибор? Весь остальной код выполняется в режиме "Фоновый по указателю" и работает с эмулятором LDPlayer.
 
 Top
Kibor
Отправлено: 26 Ноября, 2024 - 09:37:47
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8362
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




Использовал ChatGPT.

Скормил ему вопрос с шапки темы, попросив написать код для Кибор.
Немного напутал, добавил функцию которой нет, перепутал тип переменной, переменой и код конечно можно получше сделать, но смысл в принципе похож..


Отправил в ChatGPT
CODE:
Есть полноценно работающий скрипт бота. Появилась необходимость вставить в него, в определенном месте, запуск стороннего файла, в графической оболочке которого, надо нажать некоторые кнопки, чтоб он выполнил необходимую задачу в нужное время при появлении тригерного изображения.

Проблема в том, что, когда произвожу его запуск, функции, которые должны выполнять разного рода действия, не видят окно с программой вызываемой этим файлом. Ведь как я понимаю, надо создать еще одну переменную, аналогичную W_kib и назначить ей значение конрола, с которым будет происходить работа. Методом тыка, перепробовал все! И запускал процесс, в его свойствах прописывал, что указатель на контрол будет записываться в переменную W_kib1 (параллельно с W_kib, в которой указатель на основное окно для работы скрипта) и, соответственно в блоках кодах, вместо W_kib прописывал W_kib1... Ну и подобные, всякие манипуляции, которые, как мне кажется, являются кандидатами на решение. К сожалению, у меня нет достаточного количества знаний программирования, чтоб интуитивно понять механизм проблемы, приходится тыркаться, как слепой котенок.

Объясните пожалуйста, как реализовать данную задачу.
напиши код для Кибор


Получил ответ
CODE:
Вот пример кода для Кибор (Cybor) с описанием шагов, который выполняет запуск стороннего приложения, ожидает появления окна, а затем переключается на него для выполнения действий:

// Основной код
int W_kib = window("Название основного окна", "Класс основного окна", -1); // Основное окно игры
if (W_kib == 0)
{
messagebox("Основное окно не найдено!");
end();
}

// Запуск стороннего приложения
int W_external = run("C:\\Путь\\к\\программе.exe", ""); // Указываем путь к программе
if (W_external < 0)
{
messagebox("Не удалось запустить стороннюю программу!");
end();
}

// Ожидание появления окна программы
int timeout = 10000; // Максимальное время ожидания (в мс)
int elapsed = 0;
while (elapsed < timeout)
{
W_external = window("Название окна программы", "Класс окна программы", -1);
if (W_external != 0)
{
break; // Если окно найдено, выходим из цикла
}
sleep(500); // Задержка перед следующим поиском
elapsed += 500;
}

if (W_external == 0)
{
messagebox("Окно программы не найдено!");
end();
}

// Переключение на стороннюю программу
activate(W_external);
sleep(1000); // Небольшая задержка для стабильности

// Выполнение действий в окне программы
key(TAB); // Например, переключение между элементами
sleep(200);
key(ENTER); // Подтверждение
sleep(200);

// Возвращение к основному окну
activate(W_kib);
sleep(1000); // Небольшая задержка для стабильности

Пояснение:

Получение идентификатора окна:
Используется window("Название окна", "Класс окна", -1), чтобы получить дескриптор окна.
Вместо "Название окна" и "Класс окна" нужно указать конкретные данные окна программы. Узнать их можно, наведя курсор на окно и нажав комбинацию CTRL + SHIFT + S (если поддерживается Кибор).

Запуск стороннего приложения:
Команда run() запускает программу по указанному пути.
Если запуск не удался, возвращается отрицательное значение, и об этом сообщается.

Ожидание появления окна:
Программа ждет, пока появится окно стороннего приложения, с помощью цикла while.

Активное взаимодействие:
После активации окна (activate(W_external)), действия выполняются с помощью функций, например, key() для эмуляции нажатий клавиш или mousemove()/mouse() для эмуляции действий мыши.

Возврат в основное окно:
По завершении работы со сторонним приложением переключаемся обратно на основное окно игры с помощью activate(W_kib).

Дополнительные рекомендации:

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

Если будут вопросы по доработке, уточняйте детали, и я помогу!
 
 Top
Zireael
Отправлено: 26 Ноября, 2024 - 10:22:27
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4600
Дата рег-ции: Нояб. 2017  
Репутация: 595




 Цитата:
Использовал ChatGPT.

Для того кто не знает синтаксис кибор или хоть какой-то язык программирования полученный код это китайская грамота. Исправить ошибки не смогут.
Для того кто знает это не актуально.
 
 Top
Kibor
Отправлено: 26 Ноября, 2024 - 10:26:17
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8362
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 359




 Zireael пишет:
Для того кто не знает синтаксис кибор или хоть какой-то язык программирования полученный код это китайская грамота. Исправить ошибки не смогут.
Для того кто знает это не актуально.

Тут 4 ошибки
int W_kib
elapsed += 500;
"C:\\Путь\\к\\программе.exe"
end();

Остальное верно. И логично в принципе и с пояснениями. Думаю полезно.
 
 Top
konctantin777
Отправлено: 08 Декабря, 2024 - 20:44:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1272
Дата рег-ции: Окт. 2017  
Откуда: Архангельск
Репутация: 7




 Kibor пишет:
Как пользоваться чатом правильно для реальной пользы

Пишет, что тема не существует..
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by