Кибор » Кибор - Интегрированная среда разработки ботов » Связка Кибор с другими программами » Обмен данными между процессами через разделяемую память(Shared memory)

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

1. Brumo - 28 Февраля, 2021 - 07:00:09 - перейти к сообщению
Пример обмена данными между приложениями(Kibor >> Python, Kibor >> Kibor) с помощью Shared memory
Грубо говоря обмен данными происходит через общую(разделяемую) память в виртуальном адресном пространстве

Сначала запустить "Сервер", затем "Клиент"(Python или Kibor, можно оба). Нажать старт на "Сервере"


Cервер Kibor, "записывает" в виртуальную память данные (Отобразить)


Kлиент Python, "читает" с виртуальной памяти данные(ссылка) (Отобразить)


P.s. (Отобразить)

(Добавление)
Клиент Kibor (Отобразить)
2. Zireael - 17 Марта, 2023 - 19:34:30 - перейти к сообщению
Пример как из одного exe передать 2 числа другому и получить в ответ сумму этих чисел.
Скрипт, передающий данные (Отобразить)

Скрипт, принимающий данные и возвращающий ответ (Отобразить)
3. Zireael - 18 Марта, 2023 - 15:10:59 - перейти к сообщению
Пример как из одного exe передать 2 числа другому и получить в ответ сумму этих чисел.
Используется семафор. Первый exe ожидает когда второй exe даст сигнал что нужные действия выполнены.
Скрипт, передающий данные (Отобразить)

Скрипт, принимающий данные и возвращающий ответ (Отобразить)
4. Redear - 21 Марта, 2023 - 06:36:12 - перейти к сообщению
 Zireael пишет:
Пример как из одного exe передать 2 числа другому и получить в ответ сумму этих чисел.
Используется семафор. Первый exe ожидает когда второй exe даст сигнал что нужные действия выполнены.
Скрипт, передающий данные (Отобразить)

Скрипт, принимающий данные и возвращающий ответ (Отобразить)


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

читать память в цикле с задержкой 1 мс, не думаю, что самый рациональный метод. спасибо
5. Zireael - 21 Марта, 2023 - 11:34:33 - перейти к сообщению
 Цитата:
как поставить программу приемник на ожидание получения сообщения

Также как и ожидание ответа через WaitForSingleObject.

Скрипт, передающий данные (Отобразить)

Скрипт, принимающий данные и возвращающий ответ (Отобразить)
6. Redear - 21 Марта, 2023 - 11:59:31 - перейти к сообщению
большое спасибо, крепкого вам здоровья,
небольшой вопрос по синтаксису,
не нарушает ли синтаксис, если создать отдельную функцию которая будет загружать функции из библиотек. или загрузка должна быть в рамках основной программы.
CODE:

например
function load ()
{
..
external(VOID, "RtlMoveMemory", "RtlMoveMemory", "Ntdll.dll");
external(INT, "CreateFileMapping", "CreateFileMappingA", "Kernel32.dll");
external(INT, "MapViewOfFile", "MapViewOfFile", "Kernel32.dll");
external(INT, "CloseHandle", "CloseHandle", "Kernel32.dll");
external(INT, "UnmapViewOfFile", "UnmapViewOfFile", "Kernel32.dll");
external(INT, "CreateSemaphore", "CreateSemaphoreA", "Kernel32.dll");
external(INT, "OpenSemaphore", "OpenSemaphoreA", "Kernel32.dll");
external(INT, "ReleaseSemaphore", "ReleaseSemaphore", "Kernel32.dll");
external(INT, "WaitForSingleObject", "WaitForSingleObject", "Kernel32.dll");
...

7. Zireael - 21 Марта, 2023 - 12:04:09 - перейти к сообщению
 Цитата:
если создать отдельную функцию которая будет загружать функции из библиотек

Так можно.
8. Mikonaria - 09 Апреля, 2023 - 13:07:53 - перейти к сообщению
Здравствуйте, интересует один специфичный вопрос. Имеется онлайн игра, в ней карта с локациями (100х100 локаций). Данные об этой карте сняты и погружены в таблицу в эксель (Тип локации, Можно ли в нее зайти). Есть ли возможность как-то заставить КиберБота загрузить данные о карте в память и оперировать ею при поиске локаций и построении маршрутов для перемещения (естественно по кратчайшему, исключая локации, на которые нельзя заходить)?
9. Zireael - 09 Апреля, 2023 - 14:07:17 - перейти к сообщению
Mikonaria, ваш вопрос не имеет отношения к этой теме. Создайте отдельную тему.
Файл excel можно сохранить в формате csv, тогда его без проблем можно прочитать.
На счёт перемещения нет никакой конкретики, так что нельзя ответить на этот вопрос.
10. Zireael - 30 Апреля, 2023 - 07:45:34 - перейти к сообщению
Пример использования кибор для распознавания текста из другой программы, в данном случае консольное приложение C#.
В скрипте кибор указать путь к базе символов в unpack и блоке ресурсов. Собрать скрипт в exe с включёнными галками: Запускать скрипт с запуском exe и Упаковать файлы с блока ресурсов.
В приложении C# указать координаты для распознавания текста и путь к exe кибор, который будет распознавать текст.

Скрипт кибор (Отобразить)

Консольное приложение C# (Отобразить)

Powered by ExBB FM 1.0 Final