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 に答える