阅读:1852回复:12
请问在vc中如何实现程序间通讯?
也就是说程序B能随时监控程序A得状态~
不管是通过程序A发消息还是什么得! |
|
沙发#
发布于:2004-08-19 21:00
通过发送消息,管道,套节字,共享内存可以实现程序间通信.
|
|
板凳#
发布于:2004-08-22 08:36
请问如果采用发送消息需要使用什么函数??
如果是采用其他方法也请给个例子! |
|
地板#
发布于:2004-08-22 13:08
发送 消息 可以 用两个函数:
SendMessage()这个是同步执行的函数,直到响应了消息函数才返回。 PostMessage()这个是异步执行的函数,执行后立即返回。 更详细资料,请查询MSDN。 |
|
地下室#
发布于:2004-08-23 15:54
如果我使用SendMessage,请问我如何获得窗口句柄!
注意,这个窗口并非此程序所开的! 还有其他方法吗?注意:是2个单独程序,不是进程 |
|
5楼#
发布于:2004-08-25 09:17
可以用FindWindow。
|
|
6楼#
发布于:2004-08-27 09:37
程序B可以打开一个命名管道,等着程序A往里写(NT only)。也可以开个隐藏窗口,等着程序A发消息。管道名和窗口title可以用GUID,防止跟别的程序混淆。
|
|
7楼#
发布于:2004-08-27 17:14
可以用FindWindow。 没错!!!!!! |
|
8楼#
发布于:2004-09-09 23:12
管道
|
|
9楼#
发布于:2004-09-09 23:13
文件
|
|
10楼#
发布于:2004-09-09 23:13
socket
|
|
11楼#
发布于:2004-09-11 11:13
楼主们说清楚一点啊
|
|
|
12楼#
发布于:2004-10-01 13:59
可以使用消息,但要先注册消息才行。
Socket当然也行。 注册表,文件是比较差的选择。 但综合考虑还是用信号量比较方便,也容易兼容。 构造一个命名的CEvent: CEvent::CEvent( BOOL bInitiallyOwn = FALSE, BOOL bManualReset = FALSE, LPCTSTR lpszName = NULL, LPSECURITY_ATTRIBUTES lpsaAttribute = NULL ); 其中的 lpszName 为你自己定义的古怪一点的字符串,两个程序中的名字一样,很容易使用。 |
|
|