Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
43 / 43 / 5
Регистрация: 12.11.2011
Сообщений: 444
1

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

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

У меня в данный момент есть программа на С++ в консольном формате и вторая в Винформ формате (Vb.net), я через AttachConsole (Винапи) подключаюсь к консольной и могу отправлять туда текст типа
vb.net
1
Console.WriteLine("test")
мне нужно чтобы в программе (консольной) было событие о таком сообщении (что из чужой программы пишут) и обработать строку которая пришла из другой, как-то так
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.07.2012, 21:14
Ответы с готовыми решениями:

Необычное (для меня) логарифмическое уравнение
Привет всем. Есть уравнение log2(1+sqrt(x))=log3(x) и еще одно log2(9x+2)=log3(16x+2) Пробовал...

Событие для Form "Выводом у тестовой программы типа Кто хочет стать Миллионером?"
Пишу программу в виде теста для детей. Что то похожее на "Кто хочет стать Миллионером?" Суть такая...

Событие на завершение программы
Программа запускается автоматически при запуске системы. По событию FormCreate прописал ...

Событие на закрытие программы
У меня есть главная программа на XNA 4.0, которая открывает другую программу Windows Forms (будем...

4
591 / 529 / 76
Регистрация: 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 данные то не были получены
1
43 / 43 / 5
Регистрация: 12.11.2011
Сообщений: 444
23.07.2012, 11:07  [ТС] 3
хм, а если в консольной сделать Tcp listener, потом подключиться из моей программы и отправлять текст, я максимум могу прослушку написать, а событие о приходе инфы уже не знаю
0
быдлокодер
1718 / 905 / 106
Регистрация: 04.06.2008
Сообщений: 5,612
24.07.2012, 12:52 4
Цитата Сообщение от Micro Посмотреть сообщение
мне нужно чтобы в программе (консольной) было событие о таком сообщении (что из чужой программы пишут) и обработать строку которая пришла из другой, как-то так
Долго думал. Короче если речь идёт о простом взаимодействии процессов, можно сделать так, что программа на Vb.net писала бы строку в текстовый файл (тебе ведь, как я понял необязательно её писать именно в консоль, главное, чтобы она просто БЫЛА), а консольное приложение считывало бы эту строку из текстового файла и на неё как-то реагировало. Тут главная задача синхронизировать работу процессов.
0
43 / 43 / 5
Регистрация: 12.11.2011
Сообщений: 444
24.07.2012, 17:26  [ТС] 5
Уже разобрался я
С текстовыми файлами сразу отпадал вариант.
Я сделал все через сокеты, работает изумительно, тему можно закрыть
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.07.2012, 17:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Событие при старте программы
Запуск кода при запуске пограммы ? Как называется продцедура ссылающаяся на событие при загрузке...

Отловить событие из другой программы
Нужно узнать когда в браузере юзер переходит на определенный сайт. Такое вообще возможно?

Отловить событие завершения программы
Доброго времени суток. Проблема такая. Как отловить событие закрытие программы из диспечера задач?...

Перехватить событие из внешней программы
Подскажите где можно подробно почитать про события (по русски). Суть вопроса нужно перехватить...

[WPF] Событие бездействия программы
Добрый день. Может кто сталкивался с такой задачей!? Нужно отловить бездействие программы в...

Событие до жесткого закрытия программы
Есть ли какое-то событие, до того, как программа была жестко закрыта? Например, если грохнули...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.