Mac OS X에서 하위 프로세스로 애플리케이션을 시작하면 백그라운드에서 시작되며 선창의 아이콘을 클릭해야 전면으로 이동합니다. 포 그라운드에서 어떻게 시작할 수 있습니까?Mac OS X에서 Python으로 포 그라운드에서 앱을 시작하는 방법은 무엇입니까?
나는 "open"을 사용해 보았지만, 이는 원치 않는 터미널 창을 생성합니다.
참고 :이 응용 프로그램은 wxPython을 사용하여 작성된 GUI 응용 프로그램에서 시작됩니다.
Mac OS X에서 하위 프로세스로 애플리케이션을 시작하면 백그라운드에서 시작되며 선창의 아이콘을 클릭해야 전면으로 이동합니다. 포 그라운드에서 어떻게 시작할 수 있습니까?Mac OS X에서 Python으로 포 그라운드에서 앱을 시작하는 방법은 무엇입니까?
나는 "open"을 사용해 보았지만, 이는 원치 않는 터미널 창을 생성합니다.
참고 :이 응용 프로그램은 wxPython을 사용하여 작성된 GUI 응용 프로그램에서 시작됩니다.
네이티브 API와 일부 파이썬 바인딩을 사용해야 할 것입니다.
NSRunningApplication 및 그 방법은 activateWithOptions입니다. 다음은 사용 방법의 예입니다. How to launch application and bring it to front using Cocoa api?
바인딩을 보려면 PyObjC을보십시오.
from Foundation import *
from Cocoa import *
import objc
pid = 1456
x = NSRunningApplication.runningApplicationWithProcessIdentifier_(pid)
x.activateWithOptions_(NSApplicationActivateAllWindows)
업데이트 :
다음 줄 응용 프로그램을 활성화에 더 공격적이다.
x.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)
또한 먼저 응용 프로그램을 .unhide()
해야 할 수도 있습니다.
x.hide()
x.unhide()
저의 답변이 저에게 효과적이었습니다. 그러나 NSRunningApplication 및 NSApplicationActivateIgnoringOtherApps 만 필요하므로 다른 모든 것은 가져 오지 못할 수도 있습니다. 다음은 나를 위해 일했고 상당히 빨랐습니다 :
from Cocoa import NSRunningApplication, NSApplicationActivateIgnoringOtherApps
pid = 1456
x = NSRunningApplication.runningApplicationWithProcessIdentifier_(pid)
x.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)
답장을 보내 주셔서 감사합니다. open을 -a 플래그와 함께 사용하면 터미널이 생성되지 않는다는 것을 알게되었습니다. –
PyObjC는 OSX와 함께 제공되므로 설치하지 않아도됩니다. 또한 답변에 대한 업데이트를 확인하십시오. – snies