1、现状
很多商业软件。
几个开源软件:
logkext:http://code.google.com/p/logkext/
keylogger:https://github.com/Dannvix/keylogger-osx
商软的功能:
Record keystrokes typed except passwords
- 记录键盘敲击(密码除外)
- 定时截屏
- 记录访问过的网站、聊天会话
- 敲如的邮件内容
- 秘密地不被察觉的监控、记录
- 秘密发送日志到指定邮箱或FTP空间
- 受密码保护
- 易于安装(不需要管理员密码)
有关的讨论帖:
http://forums.macrumors.com/showthread.php?t=854382
目前,非苹果的软件都无法自定义键盘快捷键。http://forums.macrumors.com/showthread.php?t=1523238&highlight=keyboard+event
2、开发
可能用到的API:
CGEventPost
CGEventTap
IOHIKeyboard
http://www.cocoabuilder.com/archive/cocoa/220055-keystroke-logger-for-mac-os.html
键盘接口控制
Cocoa事件分发架构将以下特定的key事件看作是命令:如在窗口中移动控制焦点到不同的用户接口对象,或者模拟对某个对象的鼠标点击,或者释放模式窗口,或者在有选项可选的对象中做出选择。这种功能称为是键盘接口控制。大多数涉及键盘接口控制的用户接口对象是NSControl对象,但那些不是控件的对象也可以参与。