2

我想创建一种后台进程,监听所有击键事件,并因此采取行动(例如,如果在Finder.app中按下CMD-A时执行一些操作,或更复杂的东西,如序列来创建像emacs中的快捷方式..)使AppleScript程序,侦听系统范围的快捷方式

但是,我怎么能听SnowLeopard系统的按键? 我想AppleScript的..但没有发现任何..
(我擅长的红宝石也是如此,并打算用RB-appscript实际上)

的感谢!

回答

3

如果您确实想要捕获系统范围内的所有按键,则需要CGEventTap。我不认为它可以直接用于AppleScript,也许在10.6版本中可以使用AppleScriptObjC。当然,它应该通过Bridge Support提供给Ruby。

但是,系统范围的键盘监听器会经常被调用。我会建议用C或Obj-C代码,这样会更有效率。

+0

这是一个很好的答案!谢谢 – luca 2010-02-01 19:08:46

1

您可以使用Automator创建Service。如果要运行ruby脚本,请使用运行Shell脚本操作,并在Shell:弹出菜单(不需要rb-appscript)中选择/ usr/bin/ruby​​。

可以在系统预置 - >键盘首选项面板中为服务提供一个键盘快捷键。

+0

不是我正在寻找的,这只是一个执行脚本的系统快捷方式..我想要一个侦听按键的脚本来将最复杂的按键序列绑定到命令。 – luca 2010-02-01 15:41:13