【发布时间】:2023-03-03 05:52:21
【问题描述】:
我需要将一个 dll 注入一个或多个外部进程,我还想从中拦截键盘事件。这就是为什么将 SetWindowsHookEx 与 WH_KEYBOARD 一起使用看起来是一个简单的方法,可以一步实现这两个目标。
现在,当我只对几个选定的进程感兴趣时,我真的不想安装全局挂钩,但 Windows 挂钩似乎是全局的或仅限线程的。
我现在的问题是如何正确设置进程范围的挂钩。
我想一种方法是在我的应用程序的目标进程的主线程上设置钩子,然后在我的 DLL 中为所有其他正在运行的线程在 DLL_PROCESS_ATTACH 上执行相同的操作(加上稍后启动的线程的 DLL_THREAD_ATTACH) . 但这真的是一个好方法吗?更重要的是,没有更简单的方法来设置进程范围的钩子吗?我的想法看起来既麻烦又丑陋,但我无法在任何地方找到有关执行此操作的任何信息。
【问题讨论】:
标签: windows winapi hook setwindowshookex