这个把KEYDOWN 和 KEYUP 成对出现。。
现在我程序只想执行一遍即可,怎样才能把KEYUP扔掉?!LRESULT WINAPI GetKeyBoardProc(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode >= HC_ACTION){
doAction();
} return(CallNextHookEx(g_hhook, nCode, wParam, lParam));
}
以上是程序代码。
现在我程序只想执行一遍即可,怎样才能把KEYUP扔掉?!LRESULT WINAPI GetKeyBoardProc(int nCode, WPARAM wParam, LPARAM lParam) { if(nCode >= HC_ACTION){
doAction();
} return(CallNextHookEx(g_hhook, nCode, wParam, lParam));
}
以上是程序代码。
if(GetKeyState(VK_CONTROL)<0){ g_info.bCtrl = TRUE; }
if(GetKeyState(VK_SHIFT)<0){ g_info.bShift = TRUE; }
if(GetKeyState(VK_MENU)<0){ g_info.bAlt = TRUE; }
g_info.wParam = wParam;
g_info.lParam = lParam;
call_back(&g_info);
} return(CallNextHookEx(g_hhook, nCode, wParam, lParam));
}//这个就是刚才的回调函数模型
int my_key_assess(_KEY_INFO *keyInfo)
{
if(keyInfo->bCtrl && keyInfo->wParam == 49){// Ctrl + 1的时候执行
if((keyInfo->lParam & 0x8000)==1)
MessageBox(NULL,L"A",L"A",MB_OK);
}
return 0;
}
不知道为啥,还是不行。
关于丢掉KEYUP问题继续研究。