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

时间:2009-12-30 13:57:28

标签: c++ winapi messages

我对Windows API很陌生,想知道如何查看其他进程收到的消息。作为一个例子,我想得到记事本的HWND,并查看发送到该窗口的所有消息。我用C / C ++编写。

谢谢

3 个答案:

答案 0 :(得分:7)

您可以使用SetWindowsHookEx功能,WH_CALLWNDPROC或其他类型的挂钩,here就是一个例子。

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

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

答案 1 :(得分:1)

您想查看SetWindowsHookEx

答案 2 :(得分:1)

您正在寻找Windows Hooks。

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

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