我收到一条代码为1092(0x444)的Windows消息,我不知道它是什么。它高于WM_USER,但我搜索了我们的代码库,没有找到参考,所以我不认为它是我们的...我的Windows使用0x400以上的自定义消息,如果是这样,我该怎么看?
答案 0 :(得分:8)
来自WM_USER的文件:
第二个范围内的消息编号 (WM_USER到0x7FFF)可以 由应用程序定义和使用 在私人窗口内发送消息 类。这些值不能用于 定义有意义的消息 在整个申请中,因为 一些预定义的窗口类已经 定义此范围内的值。 :用于 例如,预定义的控件类 比如BUTTON,EDIT,LISTBOX和 COMBOBOX可能会使用这些值。 此范围内的消息不应该是 发送到其他应用程序,除非 应用程序已设计为 交换消息并附加 与消息号码的含义相同。
因此,该消息可以是任何 例如,快速浏览一下MFC源代码就会发现这些定义
// COMMCTRL.H
#define TB_ADDBUTTONSW (WM_USER + 68)
// RICHEDIT.H
#define EM_SETCHARFORMAT (WM_USER + 68)
我搜索了68
因为0x444 = 0x400 + 0x44 = WM_USER + 68
答案 1 :(得分:0)
您可以在Windows标题中搜索0x444
,0x0444
,0x00000444
等字符串。
它也可能是一个流氓应用程序发送它不应该发送的消息。
答案 2 :(得分:0)
任何应用程序都可以使用WM_USER或WM_APP以上的消息。 Windows本身甚至使用WM_USER以上的消息。因为任何应用程序都可以广播这些消息值(有些应用程序可以播放这些消息值,因为它们是由白痴写的),所以您应该始终使用已注册的消息进行私人通信。
你可以使用Spy ++来尝试跟踪这些消息,但你不能保证永远阻止它们,所以最好通过使用RegisterWindowMessage来避免它们。