关闭

关于PostMessage与SendMessage的一点体会

2081人阅读 评论(2) 收藏 举报

使用一个钩子程序截获消息后,使用SendMessage把消息发送到主处理程序进行处理,但是在主处理程序还没有完成任务的时候,被设置钩子的程序进入了停止的状态,不可以处理

WM_PAINT,

WM_MOVE,

.......等的基本信息,

必须要等SendMessage发送出的消息完成后,才能继续运行,整个界面一片空白,把钩子消息设置成PostMessage的发送消息形式后,问题解决!

我查了MSDN对这两个API的定义,

PostMessage只是把消息放入队列,不管其他程序是否处理都返回,然后继续执行;

而SendMessage必须等待其他程序处理消息后才返回,继续执行。

PostMessage的返回值表示PostMessage函数执行是否正确;

而SendMessage的返回值表示其他程序处理消息后的返回值。

使用这两个发送消息函数的最重要的是要看你的程序是否要对消息的滞后性关注否,PostMessage会造成消息的滞后性,而SendMessage则不会,但如果SendMessage消息处理失败,则会造成程序停止!

0
0
查看评论

SendMessage与PostMessage

SendMessage函数将指定的消息发送到一个或多个窗口,消息会直接发送到窗口过程而不经过消息队列,且直到消息处理完成后,SendMessage才返回。函数原型: LRESULT WINAPI SendMessage( HWND hWnd, UINT Msg, ...
  • milanleon
  • milanleon
  • 2014-01-29 10:36
  • 1108

MFC SendMessage与PostMessage

MFC SendMessage与PostMessage flyfish 2015-2-2 PostMessage将消息放入消息队列后马上返回 SendMessage直到窗口过程处理完消息后再返回
  • flyfish1986
  • flyfish1986
  • 2015-02-02 15:02
  • 2227

SendMessage 和 PostMessage 区别

LRESULT SendMessage(  __in  HWND hWnd,  __in  UINT Msg,  __in  WPARAM wParam,  __in  LPARAM lParam); BOOL...
  • cuterain
  • cuterain
  • 2010-04-13 22:25
  • 520

keybd_event跟SendMessage,PostMessage模拟键盘消息的区别

原地址: http://www.cnblogs.com/zeroone/p/3713023.html 首先你会发现keybd_event函数中是没有窗口句柄作为参数的,好奇的你一定会觉得很奇怪,那是因为,keybd_event是全局模拟按键的,只对前台窗口(即当前的活动窗口)才可以...
  • killer9806
  • killer9806
  • 2015-04-02 16:36
  • 1012

MFC发送消息函数PostMessage(异步)和SendMessage(同步)的异同

PostMessage只把消息放入队列,不管其他程序是否处理都返回,然后继续执行,这是个异步消息投放函数。而SendMessage必须等待其他程序处理消息完了之后才返回,继续执行,这是个同步消息投放函数。而且,PostMessage的返回值表示PostMessage函数执行是否正确;而SendMes...
  • luojingwu
  • luojingwu
  • 2015-01-12 10:38
  • 1088

进程间通信简单实现之SendMessage/PostMessage

接收消息方: #define WM_MYMESSAGE WM_USER + 100 //不用括号 afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam); BEGIN_MESSAGE_MAP(CMyWnd2, CWnd) ON...
  • lonely_wm
  • lonely_wm
  • 2015-04-18 20:21
  • 2004

HTML5 中 postMessage sendMessage使用

Web Workers 简介 至 2008 年 W3C 制定出第一个 HTML5 草案开始,HTML5 承载了越来越多崭新的特性和功能。它不但强化了 Web 系统或网页的表现性能,而且还增加了对本地数据库等 Web 应用功能的支持。其中,最重要的一个便是对多线程的支持。在 HTML5 中提出了...
  • alex8046
  • alex8046
  • 2015-02-28 14:53
  • 955

Delphi SendMessage PostMessage 原理和区别

今天用实例解释一下SendMessage PostMessage 原理和区别: 向按钮(Button)发送单击: SendMessage:   SendMessage(Button1.Handle, WM_LBUTTONDOWN, 0, 0);   SendMessa...
  • gjtao1130
  • gjtao1130
  • 2015-08-26 11:07
  • 3953

C++中SendMessage与PostMessage的区别

概述 Send有发送的意思,而Post具有投寄的意思。 联想一下现实生活中我们写信(很久很久以前。。。。)来记就很简单了:  Send:  相当于邮寄员,他会将快件亲手交给收件人,并且需要收件人签字,他才闪人。而在消息机制中,就是说,系统(邮寄员)会将收到...
  • zm1_1zm
  • zm1_1zm
  • 2017-07-13 10:12
  • 967

(delphi)Perform,SendMessage,PostMessage三者區別

(delphi)Perform,SendMessage,PostMessage三者區別 Perform():      VCL的Perform()方法適用於所有的TControl派生對象。 Perform()可以向任何一個窗件或控件發送消息,只需要知...
  • start8588
  • start8588
  • 2013-08-24 02:23
  • 2499
    个人资料
    • 访问:214090次
    • 积分:3928
    • 等级:
    • 排名:第9543名
    • 原创:96篇
    • 转载:77篇
    • 译文:4篇
    • 评论:198条
    最新评论