首页
社区
课程
招聘
关于窗口消息。请朋友指点, 谢谢
2006-6-13 12:33 3964

关于窗口消息。请朋友指点, 谢谢

2006-6-13 12:33
3964
自定义的消息发到其它应用程序的窗口, 其它窗口能收到吗?
谢谢。

[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

收藏
点赞0
打赏
分享
最新回复 (10)
雪    币: 236
活跃值: (26)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
红火蚁 3 2006-6-13 14:22
2
0
好象不行的
就算你发了
另外的窗口都不止道要干什么
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yoshimitsu 2006-6-13 14:33
3
0
那我要是安装一个WH_GETMESSAGE类型的钩子, 能截获我发给其它窗口的自定义消息吗?
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yoshimitsu 2006-6-13 14:45
4
0
刚才是了下 如果我的消息是用#define WM_MSG WM_USER + 0x205 这种形式定义的话可以收到, 但是如果用uMsg = RegisterWindowMessage() 这种形式来定义消息的话却收不到。 为什么呢? 谁呢告诉我. thank you!
雪    币: 236
活跃值: (26)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
红火蚁 3 2006-6-13 16:00
5
0
我没作过这个问题的东西
但我想了想
情况1:
如果您在窗口1中定义了一个WM_X消息的话
你用钩子函数GetMsgProc来判断是否这个消息发送给了您的目的窗口,
我想问以下我在MSDN上看到这个话The system calls this function whenever theGetMessage function has retrieved a message from an application message queue. Before passing the retrieved message to the destination window procedure, the system passes the message to the hook procedure.
我感觉这个RegisterWindowMessage()不错
UINT RegisterWindowMessage(lpsz)
函数说明:RegisterWindowMessage函数定义一个新的窗口消息,该消息保证在整个系统范围内是唯一的。调用SendMessage或PostMessage函数时可以使用该函数返回的消息值。
参数说明: lpsz
  指向一个以NULL结束的字符串,该字符串指定待登记的消息。
返回值:若成功地登记了消息,返回值是一个消息标识符。该标识符值的范围在0XC000到0XFFFF之间,否则,返回值为0。
注释:RegisterWindowMessage函数通常用于为两个合作应用程序之间的通信登记消息。
  若两个不同的应用程序登记了相同的消息字符串,则这两个应用程序返回相同的消息值。该消息一直维持被登记状态,直到Windows会话结束。当多个应用程序必须处理同一消息时才使用RegisterWindowMessage函数。在一个窗口类范围内发送私有消息时,应用程序可使用范围在WM_USER到0X7FFF之间的任意整数。
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yoshimitsu 2006-6-13 16:12
6
0
十分感谢!
很详细的讲解.
谢谢.谢谢.
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yoshimitsu 2006-6-14 10:26
7
0
为什么我用PostMessage(HWND_BROADCAST, uMsg, 0, 0)
(其中uMsg = RegisterWindowMessage("xxxxxx"))
发送消息, 其他窗口收不到我发送的消息呢?
雪    币: 236
活跃值: (26)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
红火蚁 3 2006-6-14 12:57
8
0
你的这个消息是不是在2个窗口中都定义了啊?
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yoshimitsu 2006-6-14 13:10
9
0
不是。 只在调用SendMessage那个窗口中定义了的。
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
北极星2003 25 2006-6-14 21:38
10
0
Originally posted by yoshimitsu
不是。 只在调用SendMessage那个窗口中定义了的。


从消息队列中取出消息,然后会调用相应的消息处理体。
如果没有在目标进程中定义相应的消息处理函数的话,那就等于白搭
雪    币: 1852
活跃值: (504)
能力值: (RANK:1010 )
在线值:
发帖
回帖
粉丝
北极星2003 25 2006-6-14 21:41
11
0
另外,不要发重复贴子
游客
登录 | 注册 方可回帖
返回