VS2005中如何使用键盘钩子?
安装键盘钩子的函数这么写对吗? SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)KeyboardProc,hins,0); 用WH_KEYBOARD根本就进不了KeyboardProc函数。 我的系统是vista。
还有KeyboardProc函数到底该怎么写?
LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
TRACE("lParam=%d \n",lParam);
TRACE("wParam=%d \n",wParam);
TRACE("nCode=%d \n",nCode);
if(((DWORD)lParam & 0x40000000) && (HC_ACTION==nCode))
{
switch(wParam) //键盘按键标识
{
case '1':...........break;
case '2':...........break;
}
}
LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam );
return RetVal;
}
这么写得不到我要的结果啊。
调试时当随便按个键结果都一样的,是:
lParam=1244664
wParam=256 //256是WM_KEYDOWN,对应的都不是我按下的那个键
nCode=0
lParam=1244664
wParam=257 //257是WM_KEYUP
nCode=0