从其他窗口获取消息

时间:2020-04-24 21:37:51

标签: c windows winapi message

我尝试从其他窗口获取一些消息。我需要按名称查找窗口,我使用了https___www.sec.gov_Archives_edgar_data_100240_0000950144-94-000787.txt 。如何获取活动窗口并从中获取消息? 当我在GetMessage()中添加FindWindowW()时,它不起作用。

hwnd

1 个答案:

答案 0 :(得分:0)

只有创建窗口的线程才能直接接收和发送该窗口的消息。 GetMessage()从调用线程的消息队列中检索消息,因此它只能与调用线程拥有的窗口一起使用。

由于您试图捕获不是您自己的窗口的消息,因此必须使用SetWindowsHookEx()SetWinEventHook()将钩子回调安装到该窗口拥有的线程中,然后该回调可以拦截该窗口所需的消息/事件。您可以使用GetWindowThreadProcessId()获取拥有该窗口的进程和线程的ID。

如果您使用SetWindowsHookEx()并试图在另一个进程中挂接窗口,则您的回调必须驻留在DLL中,以便可以将其注入该进程中。您无需使用SetWinEventHook()来做到这一点。