그래서 Mac OS X 10.7로 내부 도우미 응용 프로그램을 이식해야합니다.Mac OS X 용 시스템 전체 단축키
플랫폼 의존적 인 코드가 아무리해도 최소한으로 작동하지만 하나의 응용 프로그램이 작동하려면 시스템 전체 단축키 (예 : RegisterHotkey 기능)가 필요하며 Mac에서이 작업을 수행하는 방법에 대한 문서를 찾을 수 없습니다. .
이 프로그램은 Python 3.2에서 PyQt gui를 사용하고 있습니다. 창문에 해당하는 코드가 기본적으로 : 다음
def register_hotkey(self):
hwnd = int(self.winId())
modifiers, key = self._get_hotkey()
user32.RegisterHotKey(hwnd, self._MESSAGE_ID, modifiers, key)
및 핫키 이벤트받을 : 나는 파이썬의 변형이 필요하지 않습니다
def winEvent(self, msg):
if msg.message == w32.WM_HOTKEY:
self.handle_hotkey()
return True, id(msg)
return False, id(msg)
주, 난 쉽게 간단한 C의 확장을 쓸 수 있습니다 - 그래서 C/objective-c 솔루션도 환영합니다.
감사합니다. 정확하게 필요한 것 같습니다. pyobjc를 Python3 용으로 컴파일하려고했는데, 코드 실행시'AttributeError : 'module'객체에 'CGEventTapCreate'속성이 없다고 알려줍니다. pyobjc는 python3과 함께 작동해야하므로, 뭔가 빠졌거나 완전히 포팅되지 않은 API입니까? – Voo
@Voo : 죄송합니다, 아무 생각이 없습니다. Python 2.7 및 pyobjc에서만 작업했습니다. –
아침에 문제를 조금 디버그하여 해결했습니다. 테이크 아웃은 다음과 같습니다. python3 및 pyobjc는 실제로 권장되지 않지만 작동하도록 만들 수 있습니다. 그리고 그것은 코코아 프레임 워크를 배우거나 python2로 앱을 다시 포팅하는 것보다 확실히 효과가 없었습니다. 도움을 다시 한번 주셔서 감사합니다. – Voo