Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 428
#1

Необычное событие для программы - C++

22.07.2012, 21:14. Просмотров 389. Ответов 4
Метки нет (Все метки)

У меня в данный момент есть программа на С++ в консольном формате и вторая в Винформ формате (Vb.net), я через AttachConsole (Винапи) подключаюсь к консольной и могу отправлять туда текст типа
vb.net
1
Console.WriteLine("test")
мне нужно чтобы в программе (консольной) было событие о таком сообщении (что из чужой программы пишут) и обработать строку которая пришла из другой, как-то так
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.07.2012, 21:14     Необычное событие для программы
Посмотрите здесь:

C++ Программы для начинающих
Меню для программы C++
Составить программы для перевода арабских чисел в римские и для обратной операции C++
Как задать свои иконки для панели задач и для программы в папке? C++
C++ Алгоритм для программы
Событие KeyPress для текстбокса C++
Создание программы для С++ C++
Библиотеки для программы C++
C++ Интерфейс для программы
C++ Оболочка для программы
C++ Классы для программы
C++ Необычное поведение или "Купи слона"

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OstapBender
582 / 520 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
23.07.2012, 01:10     Необычное событие для программы #2
ну ведь если подумать в консольной программе ничего же в самой программе не происходит, а только экран вывода меняется. при этом сама программа за этот экран не отвечает. тоесть реагировать на вывод туда новых данных не может ИМХО.

ну как вариант, если вас устроит, можно отслеживать положение курсора (http://exelab.ru/pro/cpp.php?r=appl&d=zfrt980)

опять же как вариант такой обработчик:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
bool operator==(COORD c1, COORD c2) {
    return c1.X == c2.X && c1.Y == c2.Y;
}
 
bool operator!=(COORD c1, COORD c2) {
    return !(c1==c2);
}
 
int main()
{
 
    HANDLE hCons = ::GetStdHandle(STD_OUTPUT_HANDLE);
    CONSOLE_SCREEN_BUFFER_INFO bi , biOld;
    GetConsoleScreenBufferInfo(hCons, &bi);
 
    while (1) {
    Sleep(500);
    biOld.dwCursorPosition = bi.dwCursorPosition;
    GetConsoleScreenBufferInfo(hCons, &bi);
        if (biOld.dwCursorPosition != bi.dwCursorPosition) {
            Beep(1000,500);
        }
 
 
    }
 
}
будет издавать бип, когда будет печататься новый текст.

Добавлено через 10 минут
Цитата Сообщение от Micro Посмотреть сообщение
обработать строку которая пришла из другой, как-то так
а вот это уже хз, разве что возвращать из потока данные, но в том то и дело что ни в какой std::cin данные то не были получены
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 428
23.07.2012, 11:07  [ТС]     Необычное событие для программы #3
хм, а если в консольной сделать Tcp listener, потом подключиться из моей программы и отправлять текст, я максимум могу прослушку написать, а событие о приходе инфы уже не знаю
kravam
быдлокодер
1695 / 874 / 44
Регистрация: 04.06.2008
Сообщений: 5,340
24.07.2012, 12:52     Необычное событие для программы #4
Цитата Сообщение от Micro Посмотреть сообщение
мне нужно чтобы в программе (консольной) было событие о таком сообщении (что из чужой программы пишут) и обработать строку которая пришла из другой, как-то так
Долго думал. Короче если речь идёт о простом взаимодействии процессов, можно сделать так, что программа на Vb.net писала бы строку в текстовый файл (тебе ведь, как я понял необязательно её писать именно в консоль, главное, чтобы она просто БЫЛА), а консольное приложение считывало бы эту строку из текстового файла и на неё как-то реагировало. Тут главная задача синхронизировать работу процессов.
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 428
24.07.2012, 17:26  [ТС]     Необычное событие для программы #5
Уже разобрался я
С текстовыми файлами сразу отпадал вариант.
Я сделал все через сокеты, работает изумительно, тему можно закрыть
Yandex
Объявления
24.07.2012, 17:26     Необычное событие для программы
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru