我正在尝试使用全局键盘钩子编写一个简单的键盘记录程序。 我需要帮助实现键盘钩子回调函数。我现在的功能有效,但是当按下并且没有释放按键时无法处理。
LRESULT CALLBACK KeyboardProc( int code,WPARAM wParam,LPARAM lParam ){
DWORD keyStroke=wParam;
if(code>=0 && lParam&0x40000000){
buff[charCount++]=(WCHAR)keyStroke;
buff[charCount]=L'\0';
if(charCount==1024 && charCount>0){
writeCacheToFile(buff,1025);
charCount=0;
}
}
return CallNextHookEx(NULL,code,wParam,lParam);
}
这里我试图将字符存储在buff中,然后使用writeCacheToFile将它们写入文件。
有人可以给我一些处理按键事件的示例代码吗?
任何帮助将不胜感激。
谢谢, 与Ashish。
答案 0 :(得分:1)
我没有详细介绍,但这里有一个优先问题;
if(code>=0 && lParam&0x40000000)
你需要;
if( code >= 0 && (lParam & 0x40000000) )
另外,这很奇怪;
if( charCount == 1024 && charCount > 0 )
如果charCount为1024,则它始终大于0。