如何通过编程的方式得到系统级的消息?

fupinger 2004-07-02 03:42:01
我们知道,操作系统有自已的消息队列,在应程序中通过PostMessage或类似的SDK发送出的消息将加入到系统消息队列中,并分发到所在的窗口。

我想通过编程的方式 取得系统级的消息(操作系统消息队列中的内容),不知各位高人有没有比较好的建议?

如能解决再开贴送分。。。。。。
...全文
189 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tabris17 2004-07-08
  • 打赏
  • 举报
回复
很遗憾得告诉你:并不存在你所说的“系统级别的消息”。

至于Explorer.exe是如何获知网络断掉,那是通过调用netshell.dll实现的
fupinger 2004-07-08
  • 打赏
  • 举报
回复
TO:liotion(天上掉下一个林分分~~)

不可否认,用钩子是可以实现的。

但现在的问题是不知用哪类型的HOOK,才会抓到系统消息中有关网络部分的消息,而非所有的

系统级别的消息?

fupinger 2004-07-08
  • 打赏
  • 举报
回复
TO: tabris17(四不象)

首先,谢谢您的关注,并指出我的语病,我的意思指的是系统级的消息,而不是我们开发时经常用到的窗口级的消息。
liotion 2004-07-08
  • 打赏
  • 举报
回复
用钩子不行吗??
tabris17 2004-07-06
  • 打赏
  • 举报
回复
引用:
-----------------------------
我们知道,操作系统有自已的消息队列
-------------------------------


我可不知道,消息队列属于线程,线程属于进程,和操作系统有什么关系
fupinger 2004-07-05
  • 打赏
  • 举报
回复
我也考虑了HOOK,但是都知道有N种HOOK,哪种可以捕获系统消息呢?
这么说吧,我的目的是:若在局域网内的计算机由于网卡、断电、关机、网线做的不好等原因导致网络中断,我想在第一时间知道网络断掉。

大家知道,如果在网络正常时,右下角关于网络连接情况的小图标将显示连接正常;这时如果您把网线拔掉,可以看到在很短时间(不到1秒)内,它就显示网络连接不正常。

如果在我们程序中用SOCKET做心跳检测,一来效率较低,二来网络传输过程中由于网络质量的原故,丢掉一两个包很正常,所以不太好判定是否网络断掉。

请各位大侠不吝指教。。。。。。
会思考的草 2004-07-05
  • 打赏
  • 举报
回复
并且应该是要写驱动。关于消息队列的相关变量,都没有导出,所以不能通过变量名访问之,需要使用绝对地址。
会思考的草 2004-07-05
  • 打赏
  • 举报
回复
参考一下windows的源代码吧,消息的处理在ntos\w32\ntuser\kernel\input.c里头。
scmsir 2004-07-05
  • 打赏
  • 举报
回复
使用hook.由apihook.
yintongshun 2004-07-02
  • 打赏
  • 举报
回复
http://www.easthot.net/article_read.asp?id=130
http://dev.csdn.net/develop/article/15/15121.shtm
http://www.vchelp.net/itbookreview/view_paper.asp?paper_id=1224
http://www.kehui.net/index.php/article/read/4/19722
http://www.vipcn.com/InfoView/Article_1754.html
必要时候使用中断入口
蒋晟 2004-07-02
  • 打赏
  • 举报
回复
Hook窗口过程吧
fupinger 2004-07-02
  • 打赏
  • 举报
回复
能不能再具体点?
zhangnanonnet 2004-07-02
  • 打赏
  • 举报
回复
hook...???

2,640

社区成员

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

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