在键盘钩子的回调中有三个参数:nCode,wParam,lParam
我不是很明白这些参数的作用。
nCode有些资料中是判断其是否大于0,有些又是判断其是否与HC_ACTION相等。究竟它指示的是什么意思?
从wParam,lParam中能否判断功能键状态(Ctrl,Shift,Alt)?应该怎样判断?
而且为什么总是得到两次反应?
我不是很明白这些参数的作用。
nCode有些资料中是判断其是否大于0,有些又是判断其是否与HC_ACTION相等。究竟它指示的是什么意思?
从wParam,lParam中能否判断功能键状态(Ctrl,Shift,Alt)?应该怎样判断?
而且为什么总是得到两次反应?
WPARAM wParam, // virtual-key code
LPARAM lParam) // keystroke-message information
{
if (code == HC_ACTION)
{
if (!(lParam & 0xA0000000))//相应一次
{
if (wParam==0x61 || wParam==0x63)//小键盘1,3:LEFT
{
if(::GetKeyState(VK_CONTROL) >= 0)//Ctrl键没有按下
{ }
else
{ }
WPARAM wParam, // virtual-key code
LPARAM lParam) // keystroke-message information
{
if (code == HC_ACTION)
{
if (!(lParam & 0xA0000000))//相应一次
{
if (wParam==0x61 || wParam==0x63)//小键盘1,3:LEFT
{
if(::GetKeyState(VK_CONTROL) >= 0)//Ctrl键没有按下
{ }
else
{ }
那HC_ACTION又是什么东西?
我知道可以用GetKeyState()判断按键的状态,问题是能否从wParam,lParam中获得功能键状态吗?
wParam和lParam有什么区别吗?
注意这里:
if (!(lParam & 0xA0000000))//相应一次
这样以后就只有一次反应了~~