Обработка всех входов клавиатуры (хуки) - PullRequest
1 голос
/ 04 февраля 2011

Я делаю программу, которая записывает все действия клавиатуры и сохраняет эту информацию в лог-файл (Keylogger). Я просто не могу найти хороший способ сделать это.

Что у меня есть: LowLevelKeyboardProc, код виртуальной клавиши + код сканирования нажатой клавиши.

Что бы я хотел: Используя эти коды, я буду обрабатывать и записывать информацию о выполняемых действиях клавиатуры. Для невидимых ключей я бы хотел формат: "[SHIFT], [ENTER], [ESC] и т. Д. А для видимых ключей мне просто хотелось бы, чтобы их значение Ascii (как в верхнем, так и в нижнем регистре) в том числе если они введут: ! @ # $% и т. д. .

У меня есть несколько идей, но я не знаю, как я мог захватить все. У меня есть информация, я просто не знаю, как ее эффективно обработать.

Ответы [ 2 ]

1 голос
/ 04 февраля 2011

См. Мой пост здесь: Другой пост

У меня есть пример кода для того, как установить низкоуровневую клавиатуру и как обрабатывать нажатия клавиш.

0 голосов
/ 04 февраля 2011

Поскольку у вас уже есть работающий хук, все, что вам нужно, - это сопоставление кодов клавиш с именами для специальных клавиш.Просто предварительно заполните массив строк, проиндексированных кодом ключа:

const char *map[256];

map[VK_SHIFT] = "[SHIFT]";
map[VK_ENTER] = "[ENTER]";
...

Затем в своей функции ловушки проверьте, является ли ключ печатным символом, если это так, напечатайте его напрямую, иначе ищите имяключ и распечатайте это:

if (isprint(vkCode))
  yourFile << char(vkCode);
else
  yourFile << map[vkCode];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...