首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mac OS X上使用Python在前台启动应用程序?

问如何在Mac OS X上使用Python在前台启动应用程序?
EN

Stack Overflow用户
提问于 2012-05-18 23:28:03
回答 2查看 2.6K关注 0票数 3

当我在Mac上用subprocess.Popen启动一个应用程序时,它是在后台启动的,你必须点击dock中的图标才能把它带到前台。我怎么才能让它从前台开始?

我尝试过使用"open",但这会创建一个不需要的终端窗口。

注意:该应用程序是从使用wxPython编写的图形用户界面应用程序启动的。

EN

回答 2

Stack Overflow用户

发布于 2012-05-18 23:54:23

我认为你需要使用原生API和一些python绑定。

NSRunningApplication及其方法activateWithOptions就是您所需要的。下面是一个如何使用它的示例:How to launch application and bring it to front using Cocoa api?

查看绑定的PyObjC。

代码语言:javascript
复制
from Foundation import *
from Cocoa import *
import objc

pid = 1456 
x = NSRunningApplication.runningApplicationWithProcessIdentifier_(pid)
x.activateWithOptions_(NSApplicationActivateAllWindows)

更新:

下面这行代码在激活应用程序时更具侵略性。

代码语言:javascript
复制
x.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)

此外,您可能需要首先.unhide()应用程序。

代码语言:javascript
复制
x.hide()     
x.unhide()
票数 3
EN

Stack Overflow用户

发布于 2014-08-29 07:16:00

斯奈斯的回答对我很有效。但是,由于您只需要NSRunningApplication和NSApplicationActivateIgnoringOtherApps,所以您最好不要导入其他所有内容。下面的代码对我来说很有效,而且速度更快:

代码语言:javascript
复制
from Cocoa import NSRunningApplication, NSApplicationActivateIgnoringOtherApps
pid = 1456 
x = NSRunningApplication.runningApplicationWithProcessIdentifier_(pid)
x.activateWithOptions_(NSApplicationActivateIgnoringOtherApps)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10655484

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档