spy++捕获窗口消息

Posted SpartacusIn21

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spy++捕获窗口消息相关的知识,希望对你有一定的参考价值。

 打开spy++,窗口截图如下,点击窗口搜索按钮(红框标识) ,如果找不到对应的窗口,鼠标右键刷新即可。

  鼠标左键点击窗口搜索图标,按住不放,拖到需要抓取消息的窗口上:

 spy++会自动在列表中高亮定位抓取到的窗口,如下图所示,notepad++的new1窗口被抓取到了。再点击菜单栏 监视->日志消息:

 

 在弹窗的消息选项弹窗中,可以选择需要打印的日志的消息,可以通过消息组选择一类消息,也可以在左侧“要查看的消息”中,通过鼠标左键点击选择和取消选择,也可以通过连续按键盘字母键查找对应的消息。

 这样,在操作对应的程序的时候,就能在spy++中看到窗口收到的消息和对应的日志了。

 

 spy++抓取窗口日志,可以免去了调试过程中断点导致的窗口消息中断,便于定位消息和相应的值。

 比如,之前我想让edit编辑框支持ctrl+a快捷键,在调试设置断点的时候发现只有消息WM_KEYDOWN,苦思不得其解,然后通过spy++抓取消息后,会发现其实会进入两次WM_KEYDOWN消息循环,第一次是Ctrl按下的时候,wParam是VK_CONTROL值,第二次是a按下的时候,wParam值是\'a\'或\'A\'。spy++便于让我们逆向去理解windows的消息机制。

以上是关于spy++捕获窗口消息的主要内容,如果未能解决你的问题,请参考以下文章

键盘消息捕获

在雪花存储过程中捕获成功消息

无法接收/捕获 Windows 消息

对话框捕获WM_KEYDOWN消息

如何捕获从此菜单发送的 Windows 消息?

C# - 从特定应用程序捕获 Windows 消息