我正在创建一个记录所有键盘操作的程序,并将此信息存储到日志文件(Keylogger)中。我似乎无法找到一个好方法。
到目前为止我所拥有的:一个LowLevelKeyboardProc,虚拟密钥代码+正在按下的密钥的扫描代码。
我想要什么:使用这些代码,我将处理和写入有关正在完成的键盘操作的信息。对于隐形键我想要格式:“[SHIFT],[ENTER],[ESC]等对于可见键我只想要它们的Ascii值(大写和小写) ),包括他们是否输入:!@#$%等。
我有一些想法,但我不知道如何抓住一切。我有这些信息,我只是不知道如何有效地处理它。
答案 0 :(得分:1)
请参阅我的帖子:Other Post
我有关于如何安装低级键盘钩子以及如何处理击键的示例代码。
答案 1 :(得分:0)
由于您已经有钩子工作,所以您需要的是从键码到特殊键名称的映射。只需预先填充由密钥代码索引的字符串数组:
const char *map[256];
map[VK_SHIFT] = "[SHIFT]";
map[VK_ENTER] = "[ENTER]";
...
然后在你的钩子函数中,检查键是否是可打印的字符,如果是,直接打印,否则查找键的名称并打印出来:
if (isprint(vkCode))
yourFile << char(vkCode);
else
yourFile << map[vkCode];