c++ - WINAPI:查看来自其他进程的消息

标签 c++ winapi messages

我是 Windows API 的新手,想知道如何查看另一个进程收到的消息。例如,我想获取记事本的 HWND,并查看发送到该窗口的所有消息。我用 C/C++ 编写代码。

谢谢

最佳答案

您可以使用 SetWindowsHookEx函数,带有 WH_CALLWNDPROC 或其他类型的钩子(Hook),以及 here是一个例子。

WH_CBT 可以为您提供很好的机会,因为您可以从中获取 HCBT_CREATEWND 代码,并且它会在窗口之前发送给您创建,从而使您有可能提供自己的窗口过程而不是真实的窗口过程,然后能够使用它获取所有可能的消息。

但请记住,更大的可能性也意味着更大的责任。假设你“子类化”了一些窗口,提供了你的窗口过程,如果你的应用程序设置了一个钩子(Hook)退出,接下来你会看到的是你正在查看其消息的应用程序,如果你没有输入它的地址就会崩溃原来的窗口过程回到它所属的地方。这种 Hook 的好处是能够等待创建特定窗口(比如具有特定窗口类或名称)并在之前进入该进程甚至会创建您感兴趣的任何窗口。

关于c++ - WINAPI:查看来自其他进程的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1980329/

相关文章:

c++ - 从主窗口事件处理程序调用后如何在子窗口中创建按钮?

c++ - dev c++ 中的链接器错误

c++ - 最小的 GNU Make 构建系统

windows - 如何使用 winapi 的 SendInput 发送 key ?

c++ - Win32 - 确定路径是否有可用的巨型图标

python - Django如何关闭警告

c# - 向 Windows 窗体消息循环发送或发布消息

c++ - MSVC 上的虚拟表布局-类型信息在哪里?

request - Gmail API 所有邮件

c++ - Win32 : capture handle to Display monitor