由于要考虑到在大多数程序当中都能通用,所以我采用了钩子。
我参考了网上许多有关键盘钩子的源码,程序中钩子的回调函数为:
LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(
int nCode,
WPARAM wParam,
LPARAM lParam)
{
// return 1;这里用return 1 就可以把全部常用键屏蔽,可下面我照样用为什么就不行?
if (((DWORD)lParam & 0x40000000) &&(HC_ACTION==nCode))
{
if (wParam=='a'||wParam=='A')
{
return 1; //我在这用了return 1,可就是为什么屏蔽不了a键???
}
}
前面已经用了hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hins,0);为什么用了return 1 它还是屏蔽不了啊?我现在急得很,我是移动PC,键盘又不能换,请高手指点迷津,或者还有其它办法吗?万分感谢!
我参考了网上许多有关键盘钩子的源码,程序中钩子的回调函数为:
LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(
int nCode,
WPARAM wParam,
LPARAM lParam)
{
// return 1;这里用return 1 就可以把全部常用键屏蔽,可下面我照样用为什么就不行?
if (((DWORD)lParam & 0x40000000) &&(HC_ACTION==nCode))
{
if (wParam=='a'||wParam=='A')
{
return 1; //我在这用了return 1,可就是为什么屏蔽不了a键???
}
}
前面已经用了hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hins,0);为什么用了return 1 它还是屏蔽不了啊?我现在急得很,我是移动PC,键盘又不能换,请高手指点迷津,或者还有其它办法吗?万分感谢!
WH_KEYBOARD没试过,gz
LRESULT CALLBACK KeyboardProc(
int code, // hook code
WPARAM wParam, // virtual-key code
LPARAM lParam // keystroke-message information
)
{
if (wParam == 0x41)
return 1;
else
return 0;
}//设置Hook
SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,hInstance,0);
{
if (wParam=='a'||wParam=='A')
{
return 1; //我在这用了return 1,可就是为什么屏蔽不了a键???
}
}
去掉上面那句试试
原来是去掉 if(HC_ACTION==nCode)这句!谢谢大家啦!