当我在Mac OS X上使用subprocess.Popen启动应用程序时,该应用程序在后台启动,您必须单击扩展坞中的图标将其显示在前面.如何使它从前台开始?
我尝试使用“打开”,但是会创建不需要的终端窗口.
注意:该应用程序是从使用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()