4

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

谢谢

4

3 回答 3

7

您可以使用SetWindowsHookEx函数、withWH_CALLWNDPROC或其他类型的钩子,是一个示例。

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

但请记住,更大的可能性也意味着更大的责任。假设您“子类化”了某个窗口,提供了您的窗口 proc,如果您的设置挂钩的应用程序退出,接下来您会看到应用程序,您正在查看其消息,如果您没有输入原始窗口 proc 回到它所属的位置。这种挂钩的好处是能够等待创建某个窗口(例如使用某个窗口类或名称)并在您感兴趣的任何窗口被创建之前进入该进程。

于 2009-12-30T14:02:52.423 回答
1

你想看看SetWindowsHookEx

于 2009-12-30T14:00:20.820 回答
1

您正在寻找 Windows 挂钩。

http://msdn.microsoft.com/en-us/library/ms997537.aspx

您可以使用CallWndProc挂钩过程在目标进程中捕获SendMessage 。

于 2009-12-30T14:00:24.363 回答