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

Страниц (5): « 1 2 3 [4] 5 »
 

31. Adomb - 04 Ноября, 2020 - 01:12:06 - перейти к сообщению
Код Питона
код питона (Отобразить)


Ссылка на скрипт - тут пробелы съелись(для просмотра ссылки Вам необходимо авторизоваться)
Взял пример из этой темы от AdryV

CODE:
external(INT, "CreateFile", "CreateFileA", "kernel32.dll");
external(INT, "ReadFile", "ReadFile", "kernel32.dll");

#define GENERIC_READ -2147483648
#define GENERIC_WRITE 1073741824
#define OPEN_EXISTING 3
#define NULL 0

string lpszPipeName="\\.\pipe\Foo";
int k;

k=CreateFile(lpszPipeName, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);

messagebox(k);


Запускаем pipe сервер. Запускаем кибор. Я так понимаю подключаемся к серверу. Как считать что передаёт сервер?
32. Adomb - 04 Ноября, 2020 - 08:47:22 - перейти к сообщению
Сервер вещает периодически.
Из кибора периодически читаю
r=ReadFile(k, address(#Buff[0]), 1024, address(#read), 0);
Если нет нового сообщения - кибор зависает.
Какие настройки нужны или как сделать, чтобы нет сообщения - ну и ладно?
33. Kibor - 04 Ноября, 2020 - 10:07:33 - перейти к сообщению
PeekNamedPipe надо использовать для проверки или есть что читать. При попытке прочитать если ничего нет - зависает. Не Кибор, а ReadFile
34. Adomb - 04 Ноября, 2020 - 10:35:29 - перейти к сообщению
Ну понятно, что не конкретно кибор зависает, а из-за readfile. Буду гуглить, спасибо.
35. Adomb - 04 Ноября, 2020 - 17:23:15 - перейти к сообщению
Читаю
CODE:
PeekNamedPipe(k, address(#Buff[0]), 1024, address(#PiRead), address(#PiAllData), address(#PiNotRead));

первое сообщение выводится -
Buff[PiRead]=0;
format(#Buff[0])

Дальше PiAllData растёт, но как выводил первое сообщение так и выводит только его
Менял Buff[PiAllData]=0;
Вобщем запутался.
36. Zireael - 04 Ноября, 2020 - 17:53:30 - перейти к сообщению
PeekNamedPipe проверять есть ли что-то в буфере, если есть, то вызвать ReadFile.
37. Adomb - 04 Ноября, 2020 - 18:17:28 - перейти к сообщению
Вот блин. )
38. Adomb - 03 Декабря, 2020 - 04:25:13 - перейти к сообщению
Что на винде может мешать работать pipe каналу? Питон создаёт именной канал, кибор подключается. У меня на всех компах работает. У человека нет. Я понимаю, вопрос пространный. Вдруг есть простой ответ.
39. Zireael - 03 Декабря, 2020 - 04:43:56 - перейти к сообщению
Не работает создание канала или подключение к нему, не читает, не записывает? Кибор от админа запущен? Все функции возвращают код ошибки, смотрите какая именно функция не выполнилась и что вернула.
Обычно антивирусник или uac что-то блокируют, отключить их и проверить.
40. Adomb - 03 Декабря, 2020 - 08:52:56 - перейти к сообщению
Из питона экзешник сделал и кибор экзешник в одной папке. Между ними pipe канал. И тот и другой запускаются, но пока в исключения виндовского антивирусника папку не внесли - pipe не давал создать. Пипец, это такая страшная вещь что-ли, что его антивирусник блочит? Причём молча.

Powered by ExBB FM 1.0 Final