- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个 Windows Hook 程序,我正在使用 SetWindowsHookEx
在特定线程上安装它。当我随后调用 UnhookWindowsHookEx
时,我的 DLL 是否包含从目标应用程序卸载的 Hook 过程?
大部分documentation我发现在这个主题上似乎暗示调用 SetWindowsHookEx
会导致在目标应用程序中隐式调用 LoadLibrary
。此外,文档非常小心地指出,在 global Windows Hook 上调用 UnhookWindowsHookEx
不会隐式地将库从可能已加载它的所有进程中释放出来,但少于即将发布关于线程特定 Hook 的主题。我要么没有足够仔细地阅读文档,要么我的网络搜索能力让我失望了。
最佳答案
线程特定钩子(Hook)和全局钩子(Hook)之间没有区别。线程 ID 参数只是一个过滤器,用于确定 Hook 的应用位置 - 它不会更改 Hook 规则。
因此要么线程 ID 参数用于不同的进程并且适用与全局情况相同的规则 - 您不能安全地将 FreeLibrary
调用注入(inject)另一个进程,要么线程 ID 是您的进程的一部分,没有理由调用 LoadLibary
,因为 DLL 在调用 SetWindowsHookEx
之前已经加载。 (或者您为没有 DLL 的实例传递了 NULL)
我怀疑文档使用“全局”表示进程外,使用“线程”表示进程中,因为这是正常情况。 Hook 另一个进程的单个线程是罕见的事件(但似乎得到支持。参见 remarks 。)'
这当然只是阅读文档的字里行间。
关于c++ - UnhookWindowsHookEx 是否从 Hook 的应用程序中卸载线程特定 Hook 的库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31253796/
我为计算器制作了钩子(Hook),想要获取计算器收到的消息。为此,我设置了自己的窗口过程,但在取消 Hook 期间,如果我使用 SetWindowLong(..) 来恢复旧的窗口过程程序,则会崩溃。
不幸的是,MSDN 对此还不够清楚。我正在编写一个使用全局 Hook 的程序,我担心如果程序异常终止(崩溃、被用户终止等)会发生什么。 Windows 是否会在进程终止时自动解除进程安装的全局 Hoo
我最近一直在研究低级键盘钩子(Hook)。我已经开始工作了,但我对代码有一些疑问。 我看到这里有一个完整的控制台应用程序代码: http://blogs.msdn.com/b/toub/archive
假设我有一个 Windows Hook 程序,我正在使用 SetWindowsHookEx 在特定线程上安装它。当我随后调用 UnhookWindowsHookEx 时,我的 DLL 是否包含从目标应
我正在做一个全局钩子(Hook)以将我的 DLL 添加到钩子(Hook)链中: HHOOK handle = SetWindowsHookEx(WH_CALLWNDPROC, addr, dll, 0
我是一名优秀的程序员,十分优秀!