2016-06-09 46 views
1

問題:如果有多個監視器處於活動狀態,在OS X中運行代碼時是否有方法讓Python檢測到?那麼,是否可以通過選擇將特定的OS X應用程序窗口移動到其中一個監視器?在OS X中的Python:檢測多個監視器並將應用程序窗口移動到特定的顯示器


FYI:我以前一直能夠利用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) 
+0

你可以用PyObjC來做到這一點。碳被棄用。 – pvg

回答

2

要檢測顯示器,可以使用NSScreen.screens()。那麼你可能只需將你的NSWindow定位在目的地NSScreenvisibleFrame

至少可以在你自己的應用程序窗口中工作 - 我不確定如何移動不同的應用程序的窗口,或者甚至可以通過Cocoa API。

對於該特定用例,一種可能的方法是使用AppleScript代替(例如,Moving finder window from one display to anotherPositioning a window with AppleScript using dual monitors)。

相關問題