【问题标题】:WINAPI: Look at messages from other processWINAPI:查看来自其他进程的消息
【发布时间】:2009-12-30 13:57:28
【问题描述】:

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

谢谢

【问题讨论】:

    标签: c++ winapi messages


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      你想调查SetWindowsHookEx

      【讨论】:

        【解决方案3】:

        您正在寻找 Windows 挂钩。

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

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

        【讨论】:

          猜你喜欢
          • 2010-11-24
          • 2016-08-09
          • 1970-01-01
          • 2012-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多