當我使用Mac OS X上的subprocess.Popen啓動應用程序時,它會在後臺啓動,並且必須單擊擴展塢中的圖標才能將其顯示在前面。我如何才能在前臺開始?如何在使用Python的Mac OS X上的前臺啓動應用程序?
我曾嘗試使用「打開」,但創建和不需要的終端窗口。
注意:應用程序正在從使用wxPython編寫的GUI應用程序啓動。
當我使用Mac OS X上的subprocess.Popen啓動應用程序時,它會在後臺啓動,並且必須單擊擴展塢中的圖標才能將其顯示在前面。我如何才能在前臺開始?如何在使用Python的Mac OS X上的前臺啓動應用程序?
我曾嘗試使用「打開」,但創建和不需要的終端窗口。
注意:應用程序正在從使用wxPython編寫的GUI應用程序啓動。
我想你將需要使用本地API和一些python綁定。
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()
Snies的答案爲我工作。但是,由於您只需要NSRunningApplication和NSApplicationActivateIgnoringOtherApps,因此您可能不會導入其他任何內容。下面的工作對我來說是相當快:
from Cocoa import NSRunningApplication, NSApplicationActivateIgnoringOtherApps
pid = 1456
x = NSRunningApplication.runningApplicationWithProcessIdentifier_(pid)
x.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)
感謝您的答覆。我發現使用-a標誌打開並且不會創建終端。 –
PyObjC與OSX一起發貨,您不必安裝它。同時檢查我的更新到答案。 – snies