进程入门之sendmessage
来源:互联网 发布:福建海关进出口数据 编辑:程序博客网 时间:2024/06/03 21:31
发送端:
(1)定义消息
#define WM_STARCAPTURE 4004
(2)找到接收方的句柄
如在MFC里可以采用 HWND hwnd=::FindWindow(NULL,"SERVER"); 这样的形式获取。
其中“SERVER”是接收方的窗口名。
(3)发出消息
::SendMessage(hwnd, WM_STARCAPTURE, 0, 0);
接收端:
(1)定义消息 (要与上面的一致)
#define WM_STARCAPTURE 4004
(2)声明消息响应函数
LRESULT OnStarCapture(WPARAM wp, LPARAM lp);
(3)声明消息映射
BEGIN_MESSAGE_MAP(CTest2Dlg, CDialog)
ON_MESSAGE(WM_STARCAPTURE,OnStarCapture)//映射
END_MESSAGE_MAP()
(4)定义消息响应函数
LRESULT CTest2Dlg::OnStarCapture(WPARAM wp, LPARAM lp)
{
MessageBox("hello");
return NULL;
}
注意:
sendmessage 是同步的。执行这个函数后,此进程会祖塞,把运行的权利转让给 接收端的程序,执行完消息响应函数后,运行的权利重新回到发送端。
另外,postMessage 也可以跨进程发送消息。但是它是异步的,
附加基础知识:
SendMessage 的四个参数:
hwnd Long,要接收消息的那个窗口的句柄
wMsg Long,消息的标识符
wParam Long,具体取决于消息
lParam Any,具体取决于消息
例子里,没有用到 后面2个参数。后面的2个参数可以传递指针。
- 进程入门之sendmessage
- IPC之 - C#中用WM_COPYDATA SendMessage 进程间通信
- 进程间通信简单实现之SendMessage/PostMessage
- VC进程间通信之消息传递PostMessge()或SendMessage()
- 进程入门之CreateProcess
- 进程入门之管道
- 进程入门之信号量
- PostMessage, SendMessage 之区别
- 进程入门之sendessage(2)
- linux菜鸟入门之进程
- SendMessage进程间简单通信问题
- SendMessage进程间简单通信问题
- 利用SendMessage实现C#进程间通信
- SendMessage进程间简单通信问题
- 利用SendMessage实现C#进程间通信
- API - FindWindow和SendMessage解决进程通信
- 利用SendMessage实现C#进程间通信
- 利用SendMessage实现C#进程间通讯
- 刷新aspx页面的六种方法(downmoon)
- JRE和JDK的区别
- Login Page With No Default Focus
- HDwiki模板说明
- Nicholas C. Zakas谈怎样才能成为优秀的前端工程师
- 进程入门之sendmessage
- UVA 414
- delegate(委托)使用心得
- Android学习小Demo(15)一个自定义AlertDialog的实现
- STM32-----NVIC
- 数组的概述及分类与数组的多种声明
- Cocos2d-x 3.x部署
- eclipse 启动tomcat6.0 “警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property '”
- iOS 开发学习摘要: 1. 了解 iOS 的UI设计原则