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