Hook 有关问题若干
Hook 问题若干
最近有若干疑问,一并求指教
1、 wh_keyboard 和 wh_keyborad_ll 有什么区别 。。。。
2、我建立了一个工程,主体就是2个对话框 A 和 B , 一开始是 A ,然后按下 A 的 IDOK 后,弹出 B 。
我在 A 的 ONOK() 函数中写了如下代码:
keyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());
外面写了:
LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
if(VK_F4==wParam && (1==(lParam>>29 & 1)))
return 1;
else
return CallNextHookEx(keyboard,code,wParam,lParam);
}
发现在B中达不到禁用 alt + f4 的效果
这是说明线程转换了么?
------解决方案--------------------
1、 wh_keyboard 和 wh_keyborad_ll 有什么区别 。。。。
=================
般键盘钩子并没有获得足够的优先权。低级钩子的优先权更多,有很多键用一般钩子钩不到的,比如F1键等。
发现在B中达不到禁用 alt + f4 的效果
=============
ALT+F4键用一般的钩子是肯定拦不到的,有低级钩子吧
最近有若干疑问,一并求指教
1、 wh_keyboard 和 wh_keyborad_ll 有什么区别 。。。。
2、我建立了一个工程,主体就是2个对话框 A 和 B , 一开始是 A ,然后按下 A 的 IDOK 后,弹出 B 。
我在 A 的 ONOK() 函数中写了如下代码:
keyboard=SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,NULL,GetCurrentThreadId());
外面写了:
LRESULT CALLBACK KeyboardProc(int code,WPARAM wParam,LPARAM lParam)
{
if(VK_F4==wParam && (1==(lParam>>29 & 1)))
return 1;
else
return CallNextHookEx(keyboard,code,wParam,lParam);
}
发现在B中达不到禁用 alt + f4 的效果
这是说明线程转换了么?
------解决方案--------------------
1、 wh_keyboard 和 wh_keyborad_ll 有什么区别 。。。。
=================
般键盘钩子并没有获得足够的优先权。低级钩子的优先权更多,有很多键用一般钩子钩不到的,比如F1键等。
发现在B中达不到禁用 alt + f4 的效果
=============
ALT+F4键用一般的钩子是肯定拦不到的,有低级钩子吧