★★★★ 关于WM_NULL消息?!★★★★

hufanxp 2004-06-09 05:11:04
一般向窗口发送WM_NULL消息,主要作用是什么,也就是一般在什么情况下用的比较多?
3ks!
...全文
826 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
enoloo 2004-06-10
  • 打赏
  • 举报
回复
一般是PostThreadMessage之类的发送到目标线程的消息队列,激发目标线程调用GetMessage,然后一些钩子函数就可以工作啦~ 比如消息钩子。

细节就是目标进程如果没有映射钩子dll的话,系统强制映射这个dll到目标进程,所以通过dll共享段信息,就可以在你的程序控制或者监视别的进程。
LavaFlow 2004-06-10
  • 打赏
  • 举报
回复
1的情况当然还可以做些其它收尾的处理工作,不发消息的话,其它进程可能当前并没有其它消息而得不到收尾处理的时机。
LavaFlow 2004-06-10
  • 打赏
  • 举报
回复
mscf抄滴很对啊
1,在消息钩子中可能修改了其它进程的代码,在unhook前需改回来,一般是调用进程置一个标志,然后给其它进程发条wm_null消息,其它进程中的钩子处理程序在处理这消息时可进行改回原来代码的操作。否则unhook后,DLL从其它进程空间卸载,就得不到机会改回来了。
2,就是NowCan所说的检测那个程序是否有响应呵。

顺便问一嘴mscf,你是在哪抄的啊?俺想去看看。
NowCan 2004-06-09
  • 打赏
  • 举报
回复
一般用于检测那个程序是否有响应。
薛定谔之死猫 2004-06-09
  • 打赏
  • 举报
回复
抄滴,:)
薛定谔之死猫 2004-06-09
  • 打赏
  • 举报
回复
For example, if an application has installed a WH_GETMESSAGE hook and wants to prevent a message from being processed, the GetMsgProc callback function can change the message number to WM_NULL so the recipient will ignore it.

As another example, an application can check if a window is responding to messages by sending the WM_NULL message with the SendMessageTimeout function.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧