Какой самый простой способ отправить строку в другое приложение?(Win API) - PullRequest
5 голосов
/ 13 июня 2011

У меня есть две программы Win32 API, написанные простым языком C: программа A и программа B. Я хочу, чтобы программа B отправила строку «Hello World» программе A. Поэтому B необходимо сделать следующее:

1) Определить, работает ли программа А.

2) Если это так, отправьте строку "Hello World" в A.

3) Если A не запущен, B должен показать сообщение об ошибке.

Может ли кто-нибудь указать мне функции API, необходимые для этого? Как бы я установил такую ​​связь между двумя программами? Я думаю, что самая большая проблема в том, что строка «Hello World» находится в адресном пространстве программы B, и ей как-то нужно переместиться в адресное пространство A. Так что просто передать указатель на память недостаточно ... Мне нужен другой подход. Есть идеи?

Спасибо

Ответы [ 3 ]

3 голосов
/ 13 июня 2011

Чтобы найти главное окно другой программы, я рекомендую использовать FindWindow или EnumWindows. Какой из них вы используете, зависит только от того, что вы знаете о другом процессе.

Если у вас есть этот самый простой способ отправки текстовых данных, это сообщение WM_COPYDATA windows.

Чтобы показать сообщение об ошибке, используйте MessageBox.

3 голосов
/ 13 июня 2011

Google для WM_COPYDATA. В противном случае вы можете использовать UDP-сообщение через локальный стек IP или канал.

0 голосов
/ 13 июня 2011

Этот урок может быть полезен: http://ryanfarley.com/blog/archive/2004/05/10/605.aspx

У него даже есть загружаемый образец программы.

...