#python #ruby #cocoa #hotkeys #global-hotkey
#python #ruby #cocoa #горячие клавиши #global-горячая клавиша
Вопрос:
Я пишу приложение с Titanium Developer, которое позволяет мне использовать Javascript, PHP, Ruby и Python. Он предоставляет API с определенными стандартными функциями, которые могут понадобиться, но которых не хватает, — это глобальные события.
Теперь я хочу назначить глобальные горячие клавиши своему приложению и в значительной степени остаюсь в неведении. Прямо сейчас я ориентируюсь только на MAC, но не могу найти никаких решений для Python или Ruby. Я нашел следующую библиотеку для Cocoa, которая, похоже, способна это сделать:
https://github.com/secondgear/SGHotKeysLib
Но у меня нулевой опыт работы с Objective C, и я не хочу тратить время на его изучение только для реализации одной единственной вещи.
Кто-нибудь может посоветовать мне одно из следующих действий..
- Как зарегистрировать глобальные горячие клавиши на Mac с помощью Python
- Как зарегистрировать глобальные горячие клавиши на Mac с помощью Ruby
- Как использовать SGHotkeysLib для создания демона командной строки, который мог бы направлять глобальные горячие клавиши в другие приложения (я мог бы использовать инструмент командной строки, чтобы, например, зарегистрировать, что Command K запускает определенное приложение).
Или, возможно, какие-либо другие идеи, о которых я не подумал?
Просто указатель в правильном направлении был бы очень признателен.
Заранее спасибо.
Комментарии:
1. «любые другие ide» > изучить Objective-C? Это действительно не так сложно…
2. Я в этом не сомневаюсь, но на данный момент у меня нет времени изучать Objective-C.
Ответ №1:
Возможно, вы сможете использовать Python для прямого вызова PyObjC, который является интерфейсом Python для Objective-C. Поиск по «горячей клавише pyobjc» выдал этот документ. (Тот, что на официальном PyObjC, по какой-то причине сломан.)
Комментарии:
1. Спасибо jathanism, конкретный скрипт, на который вы ссылались, к сожалению, несовместим со Snow Leopard, но я посмотрю, что еще я могу найти при вызове PyObjC через Python.