gpt4 book ai didi

c# - 正确使用 NativeWindow 实现 Windows Hook

转载 作者:行者123 更新时间:2023-11-28 01:12:24 33 4
gpt4 key购买 nike

我没有太多的 C++ 背景,但已经成功地 Hook 了一个窗口并将其消息转换为我的应用程序可以使用的引发事件,我从继承 NativeWindow 并覆盖 WndProc 开始,并确定了我感兴趣的消息,WM_VSCROLL和 WM_HSCROLL 例如。

首先,是否有任何完整的实现可以引发所有常见事件,例如 keypress、keydown、keyup、mousemove、mousedown、vscroll、hscroll、vresize、hresize 窗口。我有兴趣确保我正确地实现了这个类。

其次,我如何正确地限制我的 NativeWindow 产生的事件,以限制实现的繁琐。

最佳答案

我假设您正在谈论在另一个应用程序中挂接一个窗口。这是一个非常重要的问题,wparam 和 lparam 参数可能包含指针而不是简单的值。但是,这些指针仅在您 Hook 的窗口的进程的虚拟内存空间中有效。忽略它会给您带来 AccessViolation 异常。

您必须 P/Invoke ReadProcessMemory() 才能读取指向的结构。这需要为每条单独的消息完成,您不能指望通用实现。当您 Hook 一个非平凡的窗口(如 ListView 或 TreeView)时,这会变得非常棘手。

关于c# - 正确使用 NativeWindow 实现 Windows Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1942596/

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