создать программу AppleScript, которая прослушивает ярлыки для всей системы - PullRequest
2 голосов
/ 01 февраля 2010

Я хотел бы создать некоторый фоновый процесс, который прослушивает все нажатия клавиш и действует соответственно (например, выполняет какое-либо действие, если нажата клавиша CMD-A в Finder.app, или более сложные вещи, такие как последовательности для создания ярлыки как в Emacs ..)

Но как я могу прослушивать нажатия клавиш по всей системе на SnowLeopard? Я думал о Applescript .. но ничего не нашел ..
(Я тоже хорошо разбираюсь в ruby ​​и собирался использовать rb-appscript)

спасибо!

Ответы [ 2 ]

3 голосов
/ 01 февраля 2010

Если вы действительно хотите захватить все нажатия клавиш в масштабе всей системы, вам нужно CGEventTap .Я не думаю, что он доступен напрямую для AppleScript, возможно, на 10.6 вы можете использовать AppleScriptObjC.Конечно, он должен быть доступен для Ruby через Поддержка моста .

Однако системный слушатель клавиатуры будет вызываться очень часто.Я бы предложил вместо этого кодировать на C или Obj-C, что было бы более эффективно.

1 голос
/ 01 февраля 2010

Вы можете создать Сервис с Automator. Если вы хотите запустить скрипт ruby, используйте действие Run Shell Script и выберите / usr / bin / ruby ​​во всплывающем меню Shell: (нет необходимости в rb-appscript).

Службам можно присвоить сочетание клавиш в Системных настройках -> панель предпочтений клавиатуры.

...