1

我正在制作一个记录所有键盘操作的程序,并将这些信息存储到一个日志文件(键盘记录器)中。我似乎找不到这样做的好方法。

到目前为止我所拥有的:一个 LowLevelKeyboardProc,虚拟键代码 + 被按下的键的扫描代码。

我想要什么:使用这些代码,我将处理和编写有关正在完成的键盘操作的信息。对于不可见键,我想要格式:“[SHIFT]、[ENTER]、[ESC] 等。对于可见键,我只想要它们的 Ascii 值(包括大写和小写),包括它们是否输入:!@#$% 等

我有一些想法,但我不知道如何捕捉所有内容。我有信息,我只是不知道如何有效地处理它。

4

2 回答 2

1

从这里参考我的帖子:其他帖子

我有关于如何安装低级键盘挂钩以及如何处理击键的示例代码。

于 2011-02-04T04:34:58.567 回答
0

由于您已经使用了钩子,因此您所需要的只是从键代码到特殊键名称的映射。只需预先填充由键代码索引的字符串数组:

const char *map[256];

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

然后在你的钩子函数中,检查键是否是可打印字符,如果是,直接打印,否则查找键的名称并打印:

if (isprint(vkCode))
  yourFile << char(vkCode);
else
  yourFile << map[vkCode];
于 2011-02-04T05:04:03.557 回答