问题描述
|
我有两个用普通C语言编写的Win32 API程序:程序A和程序B。我希望程序B向程序A发送字符串“ Hello World \”。所以B需要执行以下操作:
1)检测程序A是否正在运行。
2)如果是,则将\“ Hello World \”字符串发送给A。
3)如果A没有运行,则B应该显示一条错误消息。
有人可以指出我执行此操作所需的API函数吗?如何在两个程序之间建立这样的通信?我认为最大的问题是\“ Hello World \”字符串位于程序B的地址空间中,并且它需要以某种方式移至A的地址空间。因此,仅传递内存指针是不够的...我需要一种不同的方法。有任何想法吗?
谢谢
解决方法
要查找其他程序的主窗口,建议使用
FindWindow
或EnumWindows
。您使用哪一个取决于您对另一过程的了解。
一旦掌握了最简单的发送文本数据的方法就是通过WM_COPYDATA
Windows消息。
要显示错误信息,请使用MessageBox
。
, Google售价WM_COPYDATA
。如果失败,则可以在本地IP堆栈或管道上使用UDP消息。
, 本教程可能会有所帮助:
http://ryanfarley.com/blog/archive/2004/05/10/605.aspx
它甚至有一个可下载的示例程序。