我想将WIN+E用于其他目的,所以我写了键盘低级钩子拦截WIN+E来做其他事情,可是无论如何都不成功.当我想退而求其次,仅仅将这个组合键屏蔽的时候.我甚至不能成功的屏蔽这个组合键,资源管理器照常打开.
以下是钩子回调的代码,我试了几种方法:
第一种:
_HookProcproc_dwCode:dword,_wParam:dword,_lParam:dword
local@stKBHook:KBDLLHOOKSTRUCT
invokeRtlMoveMemory,addr@stKBHook,_lParam,sizeofKBDLLHOOKSTRUCT
.if_wParam==WM_KEYDOWN&&@stKBHook.vkCode==VK_E
invokeGetKeyState,VK_LWIN
.ifah==80h
moveax,1
ret
.endif
.endif
invokeCallNextHookEx,hHook,_dwCode,_wParam,_lParam
ret
_HookProcendp
第二种:
_HookProcproc_dwCode:dword,_wParam:dword,_lParam:dword
local@Keyboard[256]:byte
invokeGetKeyboardState,addr@Keyboard
.if_wParam==WM_KEYDOWN&&@Keyboard[VK_E]==1&&@Keyboard[VK_LWIN]==1
moveax,1
ret
.endif
invokeCallNextHookEx,hHook,_dwCode,_wParam,_lParam
ret
_HookProcendp
还有一些其他类似的方法我也试了,就是不行~
望各位为我指出问题所在,谢谢
分 -->
|