我想创建某种后台进程来监听所有击键事件并因此采取行动(例如,如果在Finder.app中按下CMD-A则执行某些操作,或者更复杂的事情,例如要创建的序列像emacs中的快捷方式..)
但是我如何在SnowLeopard上全系统听按键?
我想到了Applescript ..但没有发现任何东西..
(我也很擅长ruby,并且打算实际使用rb-appscript)
谢谢!
答案 0 :(得分:3)
如果您真的想捕获系统范围内的所有按键,则需要CGEventTap。我认为它不能直接用于AppleScript,也许在10.6上你可以使用AppleScriptObjC
。当然,它应该通过Bridge Support提供给Ruby。
但是,系统范围的键盘侦听器会经常被调用。我建议用C或Obj-C代码,这样会更有效率。
答案 1 :(得分:1)
您可以使用Automator创建服务。如果要运行ruby脚本,请使用Run Shell Script操作并在Shell:弹出菜单中选择/ usr / bin / ruby(不需要rb-appscript)。
可以在系统偏好设置中为服务提供键盘快捷键 - >键盘首选项面板。