我搞了个全局钩子,
本来只想钩掉windows键的,但是却发现钩不到。于是就直接在KeyboardProc下用return 1返回,打算钩掉所有按键。
但却发现其它键都不能用了,而windows键还能用。
怎么这个windows键就钩不住呢?
大家帮帮忙!
本来只想钩掉windows键的,但是却发现钩不到。于是就直接在KeyboardProc下用return 1返回,打算钩掉所有按键。
但却发现其它键都不能用了,而windows键还能用。
怎么这个windows键就钩不住呢?
大家帮帮忙!
不过我只想屏蔽windows键,
就是ctrl和alt之间的那个键,按下后弹出开始菜单的那个。
因为系统键在调用WH_KEYBOARD钩子之前就已经被处理了,你在WH_KEYBOARD钩子中无法处理。在Windows 9x下要禁用系统键可以参考QA000295 "如何封锁“CTRL+ALT+DEL”和“ALT+ESC”组合键"、QA000171 "如何封锁ALT-TAB、ALT-CTRL-DEL键以及不让Windows的任务栏出现"。
在Windows NT 4.0 SP3以后的版本可以使用WH_KEYBOARD_LL钩子。
某人的的意见:
建议用日志钩子,他在系统处理前处理。
以后打魔兽就不怕按到windows键呵呵。
注:
在xp下用WH_KEYBOARD_LL钩子,
需要加以下几句:#define WH_KEYBOARD_LL 13 //缺少这句会提示WH_KEYBOARD_LL没定义typedef struct tagKBDLLHOOKSTRUCT { //缺少此结构体的定义,会提示KBDLLHOOKSTRUCT没定义。
//此结构体是从winuser.h里面拷过来的
DWORD vkCode;
DWORD scanCode;
DWORD flags;
DWORD time;
DWORD dwExtraInfo;
} KBDLLHOOKSTRUCT, FAR *LPKBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;
结贴。谢谢大家。