我目前正在创建一个c程序,它会计算我在一天内按下的所有按键并按数量对按键类型进行排序,这样我就能分辨出哪些按键最常按。它更像是一个副项目而不是其他任何东西,但我对我的程序似乎无法拦截任何密码字段输入这一事实感到恼火。我想这是件好事,但我花了好几个小时看文档并试图想办法如何做到这一点。我不是想创建任何类型的恶意软件。有没有解决的办法?我的程序以root身份运行。我使用ApplicationServices
框架和CGEventRef
以及CGEventTapCreate
功能。我应该使用不同的框架或结构吗?此外,kCGHIDEventTap
,kCGSessionEventTap
和kCGAnnotatedSessionEventTap
之间是否存在差异?我尝试过使用它们,但它似乎对我的程序没有任何影响。
我在OS X 10.9上运行它
更新 显然我无法捕捉到终端的击键,这是我花费大部分时间在笔记本电脑上的地方。这是一个问题。
答案 0 :(得分:2)
您想要的是相当复杂的并且需要内核扩展。进程间通信也不是一件容易的事。看看logKext,特别是logKext.cpp。该项目实际上将击键记录到加密文件中。你应该能够从中获取所需的一切。