繁体   English   中英

为什么有些窗口收不到 Windows 消息

[英]Why do some windows not receive Windows messages

在 Visual Studio 上使用 Spy++ 工具我可以看到像桌面或资源管理器(文件资源管理器)这样的窗口接收 WM_ 消息,但像 Firefox 或 Visual Studio 这样的窗口不接收消息。

为什么有的能收到消息,有的不能。

(通过 WM_ 消息,我的意思是诸如WM_MOUSELEAVEWM_SETCURSOR类的东西)

Spy++ 需要注入一个钩子来监控窗口消息。 为此,钩子函数的位数需要与拥有窗口的进程的位数相匹配,因此您应该使用 32 位版本的 Spy++ 来监视 32 位应用程序的窗口,以及 64 位版本监视 64 位应用程序。

(也就是说,毕竟,为什么要安装两个版本的 Spy++)

我在 64 位 Windows 上运行 VS 2017。 我从 IDE 工具菜单中使用了 spy++,但它不记录消息。 然后我看到 Ben Voigt 的答案并检查版本,它是 x86 版本。 vs 2017 ide 位于程序文件(x86)目录中。 所以我环顾四周尝试下载 x64 版本的 spy++ 并失败了。 当我尝试安装 vs2019 时,我无法选择 x86 或 x64。 最后我发现在spy++ x86版本的同一个目录下有一个spy++ x64版本spyxx_xxx64.exe。 工具菜单不知何故选错了一个。 因此,如果您遇到与我相同的问题,只需找到并固定 x64 版本的 spy++ 即可。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM