2016-10-22 2 views
-5

Я получил задание создать простой кейлоггер с помощью C++,
, но кажется, что некоторые из ключей не хватает ..C++ KeyLogger Недостающие ключи

Он может обнаружить ключи, такие как «» под моим ключом NumLock, но он не может обнаружить ключи рядом с буквами на моей клавиатуре, такие как: «[», «]», «/», «.». и все это.

Я попытался сделать эту простую функцию для тестирования, до сих пор не могу его обнаружить:
(я не могу обнаружить «46» ASCII разл номер)

void test() { 

    char key; 

    while (true) { 

     Sleep(10); 
     for (key = 0; key <= 222; key++) { 

      if (GetAsyncKeyState(key) == -32767 || GetAsyncKeyState(key) == 1) { 

       cout << key+0; 
      } 
     } 
    } 

    cout << "\n\n\n"; 
    system("PAUSE"); 
} 

Спасибо!

+0

Вы должны учитывать ключевые модификаторы (alt, shift) ... –

+6

Вы внедрили кейлоггер (для контроля клавиш клавиатуры), но вместо этого запрашиваете ** символы **. Вам нужно исправить свою ментальную модель, прежде чем двигаться вперед. Кроме того, не бойтесь читать [документацию] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646293.aspx). Оба выражения в выражении 'if' неверны. – IInspectable

ответ

-1

Я думаю, что проблема с cout < < ключ + 0; номера могут быть добавлены к 0, но символы не могут быть.

+0

'key' хранит числовое значение. Выражение 'key + 0' распространяет тип на' int', так что вместо символа отображается его числовое значение. – IInspectable