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

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

Войти
Регистрация
Восстановить пароль
 
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
#1

Сообщения между win32 приложениями - C++

17.08.2013, 21:10. Просмотров 1136. Ответов 13
Метки нет (Все метки)

Как отправить сообщение (аналог системных типа WM_DESTROY только свои) и обработать приемником? приёмник это обычное консольное win32 приложение(когда в визуале пустой проект win32 создаешь)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.08.2013, 21:10     Сообщения между win32 приложениями
Посмотрите здесь:

Обмен между приложениями - C++
Есть два приложения в ОС Windows , одно консольное которое ждет ввода трех чисел std::cin , второе диалоговое , диалоговое запускает...

Технология обмен данными между приложениями - C++
Приветствую профессионалов и любителей программирования! Принимайте новичка. Собственно такой вопрос, скорее системного характера....

Передача данных между двумя приложениями. - C++
Суть проблемы такова: есть приложение на с#, производящее вычисления, результатом является массив данных. Есть прога на с++ + QT, умеющая...

Как обмениваться данными между приложениями в сети? - C++
Есть несколько приложений работающих в сети (TCP/IP) Необходимо организовать между ними обмен данными, как это лучше сделать? При помощи...

Распространение данных между приложениями с использованием DLL - C++
Возможно ли использовать dll как "ретранслятор" данных для приложений? Те первым приложением вызывается функция "set", которая...

Обмен данными между двумя приложениями по системе клиент-сервер - C++
Всем доброго времени суток. Хочу сразу же уточнить, что готовый код меня не интересует. Нужны дельные советы или ссылки где можно почитать...

Сообщения между объектами - C++
Уважаемые господа! Я недавно начал читать литературу по Smalltalk. Так вот, там коммуникация между объектами происходит через отправку и...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.08.2013, 21:12     Сообщения между win32 приложениями #2
консольным приложением - никак
myxasa
14 / 14 / 1
Регистрация: 31.05.2012
Сообщений: 210
Записей в блоге: 2
17.08.2013, 21:13  [ТС]     Сообщения между win32 приложениями #3
только с использованием окон winapi ?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.08.2013, 21:24     Сообщения между win32 приложениями #4
можно и без окнон, но только с винАпи
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
17.08.2013, 21:25     Сообщения между win32 приложениями #5
можете попробовать в своем консольном приложении написать ченить такое:
C++
1
2
3
4
5
6
7
    MSG msg = {0};
    while (::GetMessage(&msg, NULL, 0, 0))
    {
      // тут какая-то обработка
      ::DispatchMessage(&msg);
      // или тут. пробовать надо
    }
и если в приложении, которое должно посылать сообщения консольному приложению известен поток, в котором выполняется приведенный код, то можно послать сообщение вызовом PostThreadMessage
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
17.08.2013, 21:29     Сообщения между win32 приложениями #6
Цитата Сообщение от Jupiter Посмотреть сообщение
консольным приложением - никак
Это звучит непривычно, но так можно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <windows.h>
 
VOID CALLBACK my_timer( HWND, UINT, UINT_PTR, DWORD ) {
    PostQuitMessage( 0 );
}
 
int main()
{
    SetTimer( NULL, 1, 2000 /* 2 seconds */, my_timer );
 
    MSG msg;
    while ( GetMessage( &msg, NULL, 0, 0 ) ) {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
 
    return 0;
}
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.08.2013, 21:33     Сообщения между win32 приложениями #7
castaway, не вижу причин чтоб таймер не работал, а поймать WM_CREATE ?)
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
17.08.2013, 21:36     Сообщения между win32 приложениями #8
Цитата Сообщение от Jupiter Посмотреть сообщение
castaway, не вижу причит чтоб таймер не работал, а поймать WM_CREATE ?)
Тут суть не в таймере. Суть в том что можно поймать пользовательское сообщение (WM_USER + X).
WM_CREATE ? Окна же нет С другой стороны что мешает другому приложению послать моему приложению сообщение WM_CREATE !? Правильно. Ничего не мешает
Убежденный
Системный программист
Эксперт С++
15298 / 6930 / 1096
Регистрация: 02.05.2013
Сообщений: 11,340
Завершенные тесты: 1
17.08.2013, 21:37     Сообщения между win32 приложениями #9
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Передавать оконные сообщения между процессами - это, как минимум, ненадежно.
Сообщения не могут пересекать границы рабочих столов (не говоря уже про
оконные станции и пользовательские сессии), да и в пределах одного рабочего
стола доставка сообщений между процессами, выполняющимися в разных
контекстах безопасности, блокируется UAC (точнее говоря, UIPI).

Намного более надежно использовать события, например.
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
17.08.2013, 21:45     Сообщения между win32 приложениями #10
через евенты не передашь информацию. только факт того, что что-то случилось. да и то, в случае, когда нужно обрабатывать больше одного факта, хрень какая-то выйдет. если уж потребовалось межпроцессное взаимодействие, то и смотреть нужно соответствующие либы ну или велосипед какой-нибудь писать. вот тут кое-какие варианты перечислены:
http://ru.wikipedia.org/wiki/%D0%9C%...B2%D0%B8%D0%B5
Убежденный
Системный программист
Эксперт С++
15298 / 6930 / 1096
Регистрация: 02.05.2013
Сообщений: 11,340
Завершенные тесты: 1
17.08.2013, 21:52     Сообщения между win32 приложениями #11
Цитата Сообщение от DU Посмотреть сообщение
через евенты не передашь информацию. только факт того, что что-то случилось. да и то, в случае, когда нужно обрабатывать больше одного факта, хрень какая-то выйдет.
Намного более надежно использовать события, например.
DU
1482 / 1058 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
17.08.2013, 22:28     Сообщения между win32 приложениями #12
ваш евент - это объект синхронизации. как мне только с его помощью передать другому процессу пару килобайт каких-нибудь данных? енкодить их в имя евента предлагать не надо.
Убежденный
Системный программист
Эксперт С++
15298 / 6930 / 1096
Регистрация: 02.05.2013
Сообщений: 11,340
Завершенные тесты: 1
17.08.2013, 22:32     Сообщения между win32 приложениями #13
Не настаиваю. Выделил жирным (см. выше).
Кроме событий, есть ведь разделяемая память, каналы, COM/RPC ну и дальше по списку.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.08.2013, 22:32     Сообщения между win32 приложениями
Еще ссылки по теме:

Работа с десктопными приложениями - C++
Всем привет! Задача: Есть программа переводчик PROMT, нужно чтобы скрипт добавлял нужный текст в поле для перевода, нажимал на кнопку...

Есть ли стандартная функция, запускающая указанный файл с приложениями по умолчанию? - C++
Здравствуйте, мне интересно, есть ли стандартная функция, отвечающая за открытие указанного файла? Например, оформить case`ами: при...

WIN32 - C++
Здравствуйте, знатоки)) Вы всегда даёте такие отличные советы, помогите и сейчас, пожалуйста)) Моя курсовая делится на 2 этапа: 1ый -...

Win32 или QT - C++
Здравствуйте!! У меня к вам вопросик! Учил Си и С++ почти 1 год!Хочу работать программистом, что бы им стать нужно выбрать...

win32 project - C++
Помогите мне разобрать в этих двух наименованиях: win32 project win32 console aplication Просто не могу понять разницу?


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

Или воспользуйтесь поиском по форуму:
castaway
Эксперт С++
4881 / 3017 / 370
Регистрация: 10.11.2010
Сообщений: 11,076
Записей в блоге: 10
Завершенные тесты: 1
17.08.2013, 22:32     Сообщения между win32 приложениями #14
Я думаю все согласятся с тем, что логично использовать специально созданные для этого функции. Это называется Interprocess Communications.
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
Yandex
Объявления
17.08.2013, 22:32     Сообщения между win32 приложениями
Ответ Создать тему
Опции темы

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