问题:有没有一种方法可以让 Python 在 OS X 中运行代码时检测是否有多个监视器处于事件状态?那么,是否可以通过选择将特定的 OS X 应用程序窗口移动到其中一台显示器?
<小时/>仅供引用:我以前能够利用 Carbon
激活特定的应用程序窗口,如下面的代码所示。我不知道它是否具有上述功能。
from Carbon import AppleEvents
from Carbon import AE
window_target = AE.AECreateDesc(AppleEvents.typeApplicationBundleID, "org.mozilla.FireFox")
window_activate = AE.AECreateAppleEvent('misc', 'actv', window_target, AppleEvents.kAutoGenerateReturnID, AppleEvents.kAnyTransactionID)
window_activate.AESend(AppleEvents.kAEWaitReply, AppleEvents.kAENormalPriority, AppleEvents.kAEDefaultTimeout)
最佳答案
要检测监视器,您可以使用 NSScreen.screens()
。然后,您可以将您的 NSWindow
放置在目标 NSScreen
的 visibleFrame
中。
至少这适用于您自己的应用程序窗口 - 我不确定如何移动不同应用程序的窗口,或者是否可以通过 Cocoa API 进行移动。
对于该特定用例,一种可能的方法是使用 AppleScript(例如 Moving finder window from one display to another 或 Positioning a window with AppleScript using dual monitors )。
关于OS X 中的 Python : Detect multiple monitors and move application window to specific monitor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37732063/