小编x3r*_*5d4的帖子

没有调用WH_KEYBOARD_LL挂钩

我遇到WH_KEYBOARD_LL钩子有些问题:

我使用全局LL钩子的原因并不重要我只是需要它为我的应用程序(我尝试了其他类型的钩子,但他们不适合我).

钩子函数在一个dll中,dll在应用程序启动时加载,钩子也在主线程启动时设置.这非常有效.当我需要取消激活挂钩并重新激活它时,会出现问题.如果我从应用程序的主线程执行此操作它可以正常工作,但我需要的是从计时器执行此操作,这里出了问题.我使用计时器检查我的应用程序的窗口是否是前台窗口(活动窗口),如果是,则挂钩被激活,如果不是,则挂钩被停用.SetWindowsHookEx从计时器调用时的返回值总是正常(非空),根据MSDN意味着钩子已成功设置,但我的钩子函数永远不会被调用.

以下是我设置钩子的方法:

SetWindowsHookEx(WH_KEYBOARD_LL, keyboardHookProcedure,
                 GetModuleHandle(curModule.ModuleName), 0);
Run Code Online (Sandbox Code Playgroud)

有没有人经历过这个?

我唯一的猜测是我的钩子函数在一个DLL中,而计时器回调来自另一个dll,这与我的问题有什么关系吗?

c# c++ hook winapi visual-c++

1
推荐指数
1
解决办法
1794
查看次数

标签 统计

c# ×1

c++ ×1

hook ×1

visual-c++ ×1

winapi ×1