Mfc 如何查找隐藏的windows消息代码?
我收到一封代码为1092(0x444)的windows邮件,我不知道它是什么。它比WM_用户高,但我搜索了我们的代码库,没有找到任何参考,所以我认为它不是我们的。。。Windows是否使用0x400以上的自定义消息?如果是,我如何查找此消息?您可以在Windows标题中搜索字符串,如Mfc 如何查找隐藏的windows消息代码?,mfc,winapi,Mfc,Winapi,我收到一封代码为1092(0x444)的windows邮件,我不知道它是什么。它比WM_用户高,但我搜索了我们的代码库,没有找到任何参考,所以我认为它不是我们的。。。Windows是否使用0x400以上的自定义消息?如果是,我如何查找此消息?您可以在Windows标题中搜索字符串,如0x444,0x0444,0x0000044,等等 它也可能是一个恶意应用程序,它发送不应该发送的消息。来自以下文档: 第二个范围内的消息编号 (WM_用户通过0x7FFF)可以 由应用程序定义并用于 在私人窗口内发
0x444
,0x0444
,0x0000044
,等等
它也可能是一个恶意应用程序,它发送不应该发送的消息。来自以下文档:
第二个范围内的消息编号
(WM_用户通过0x7FFF)可以
由应用程序定义并用于
在私人窗口内发送消息
班级。这些值不能用于
定义有意义的消息
在整个应用程序中,因为
一些预定义的窗口类已经存在
定义此范围内的值用于
例如,预定义的控件类
例如按钮、编辑、列表框和
组合框可以使用这些值。
不应删除此范围内的邮件
发送到其他应用程序,除非
应用程序的设计目的是
交换消息并附加
信息编号的含义相同
因此,该消息可以是任何内容。例如,快速查看MFC源代码可以发现这些定义
// COMMCTRL.H
#define TB_ADDBUTTONSW (WM_USER + 68)
// RICHEDIT.H
#define EM_SETCHARFORMAT (WM_USER + 68)
我搜索了
68
,因为0x444=0x400+0x44=WM_用户+68
任何应用程序都可以使用WM_用户或WM_应用程序上方的消息。Windows本身甚至使用WM_用户上方的消息。因为任何应用程序都可以广播这些消息值(有些应用程序可以广播,因为它们是由白痴编写的),所以您应该始终将注册消息用于专用通信
您可以使用Spy++尝试跟踪这些消息,但您不能保证将它们全部停止,因此最好使用RegisterWindowMessage来避免它们。EM_SETCHARFORMAT。它一定是这一个,正如我在看到它之前所说的SetFont。非常感谢,一般来说也是一篇好文章。@John,我很高兴我能帮上忙:)