2012-05-18 6 views
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.

Может кто-нибудь, пожалуйста, дайте мне пример кода, в котором обрабатывается событие нажатия клавиши?

Любая помощь будет оценена по достоинству.

Thanks, Ashish.

+0

Где определяется CharCount? –

ответ

1

Я не смотрел в деталях, но здесь есть проблема с приоритетом;

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

Необходимо,

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

Кроме того, это странно;

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

Если CharCount 1024, то всегда больше 0.

 Смежные вопросы

  • Нет связанных вопросов^_^