액세스 할 수 없습니다,이 PyObjC (python3.3)를 기반으로 간단한 APPPyObjC의 응용 프로그램은 OSX 매버릭의 접근성 API를
test.py
class MyDelegate(NSObject):
def applicationDidFinishLaunching_(self, sender):
NSEvent.addGlobalMonitorForEventsMatchingMask_handler_(NSKeyDownMask, lambda event: NSLog("hello"))
NSApp.activateIgnoringOtherApps_(YES)
delegate = MyDelegate.alloc().init()
app = NSApplication.sharedApplication()
app.setDelegate_(delegate)
menu = NSMenu.alloc().initWithTitle_("My Menu")
app.setMainMenu_(menu)
window = NSWindow.alloc().initWithContentRect_styleMask_backing_defer_(
NSMakeRect(0, 0, 100, 100),
NSTitledWindowMask,
NSBackingStoreBuffered,
NO
)
window.setTitle_("my app")
window.makeKeyAndOrderFront_(None)
windowController = NSWindowController.alloc().initWithWindow_(window)
AppHelper.runEventLoop()
이
python3 test.py
그것을 실행하고 접근성 액세스 권한을 부여해야 시스템 환경 설정의 터미널 -> 개인 정보 보호 & 보안 -> 접근성
글로벌 모니터가 작동하는 것을 볼 수 있습니다.
은 그 때 나는
python3 setup.py bdist_mac
내가 OSX 시스템 로그에 오류를보고 있어요
open build/Test.app
와
build/Test.app
로 끝 나 cx_Freeze로 동결
universalAccessAuthWarn[546]: AccessibilityAPI: pid 3809, is not allowed to access the accessibility API. Path: /path/to/build/Test.app/Contents/MacOS/test
,
"시스템 환경 설정"-> "개인 정보 보호 & 보안"-> "접근성"에서 "테스트"에 대한 액세스가 작동하지 않았습니다.
내가 여기에 누락 되었습니까?
업데이트 : 아마도 글로벌 이벤트 모니터 작업을 만든 py2app (0.8)를 사용하여 cx_Freeze의 문제 였을 것입니다. Ronald Oussoren의 힌트를 주셔서 감사합니다 (아래의 대답 & 참조).
감사합니다. 나는 그것이 py2pp로 제작 된 후에 앱을 정확히 시작한 방법에 관심이 있습니다. 그것을 두 번 클릭 했습니까? 아니면 "열린"명령을 사용 했습니까? 그것은 .app 자체를 시작할 때가 아니라 커맨드 라인에서 직접 실행 가능한 앱을 특별히 실행하면 (cx_Freeze로) 나를 위해 작동합니다. – Shawn
"open"을 사용하여 응용 프로그램을 시작했습니다. –
Python3을 사용하여 py2app를 OSX Maverick에 설치 한 후 처음으로 빌드 할 때 문제가 발생했습니다 : error : 해당 파일이나 디렉토리가 없습니다 : /usr/local/lib/python3.3/site-packages/setuptools-2.1- py3.3.egg/_markerlib/__ init __. pyc 그 순간 고정되어 있는지 궁금합니다. 나는 이전에 그것을 고칠 수 없었기 때문에 나는 cx_Freeze로 전환했다. – Shawn