gpt4 book ai didi

c++ - 如何检测窗口何时收到 WM_MOVE 消息

转载 作者:行者123 更新时间:2023-11-30 05:08:53 24 4
gpt4 key购买 nike

我正在尝试检测远程进程何时收到 WM_MOVE 消息,以便我可以重新扫描新窗口位置并相应地更改我的窗口(我正在创建一个叠加层)

我想我可能需要使用 DLL 注入(inject),但 Microsoft 文档太可怕且不连贯,以至于我无法弄清楚执行注入(inject)所需的最低限度,只能知道 WM_MOVE 消息何时发送到远程进程

最佳答案

对于低级支持,请将 SetWindowsHookEx 与 WH_CALLWNDPROC 或 WH_CALLWNDPROCRET 一起使用。在 x64 Windows 上,您将需要编写一个 32 位 dll、一个 64 位 dll,并让 32 位进程和 64 位进程分别使用各自的 dll 调用它(因为 32 位进程无法设置一个 64 位钩子(Hook),反之亦然)。然后,如有必要,您可以将 IPC 机制从注入(inject)的 dll 写入主进程。但一定要使其在 CPU 使用率方面更高效!如果启用“拖动时显示窗口内容”,则在窗口移动期间将有许多 WM_MOVE 消息。

要获得更高级别的支持,请将 SetWinEventHook 与 EVENT_OBJECT_LOCATIONCHANGE 结合使用,并确保您只为顶级窗口处理它。

后者通常优于前者,因为它更可靠。

关于c++ - 如何检测窗口何时收到 WM_MOVE 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46548203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com