当前位置: 首页 > 面试题库 >

使用Python在Mac OS X中查找当前的活动窗口

胥诚
2023-03-14
问题内容

有没有一种方法可以使用Python在Mac OS X上的给定时间查找当前活动窗口的应用程序名称?


问题答案:

这应该工作:

#!/usr/bin/python

from AppKit import NSWorkspace
activeAppName = NSWorkspace.sharedWorkspace().activeApplication()['NSApplicationName']
print activeAppName

仅适用于Leopard,如果安装了PyObjC,并且仅在第一行中指向正确的python二进制文件,则在Tiger上工作(如果您已经安装了通用MacPython,则可能要在Tiger上这样做)。但是Peter用Carbon的方式做这件事的答案可能会快很多,因为从Python中的AppKit导入任何内容都需要一段时间,或更准确地说,在Python流程中首次从AppKit导入内容需要一段时间。

如果您需要在PyObjC应用程序中使用它,那么我所描述的内容将非常有用且快速,因为您只经历了一次导入AppKit的滞后。如果您需要将其用作命令行工具,则会注意到性能下降。如果这与您相关,那么最好以Peter的代码为起点在Xcode中构建10行Foundation命令行工具。



 类似资料:
  • 问题内容: 参考先前提出的问题,我想知道如何获取当前活动文档的标题。 我尝试了上述问题的答案中提到的脚本。这有效,但仅给我应用程序的名称。例如,我正在写这个问题:启动脚本时,它将为我提供应用程序的名称,即“ Firefox”。这很干净,但并没有真正的帮助。我想记录我当前活动文档的标题。看到图像。 Firefox标题http://img.skitch.com/20090126-nq2egknhjr9

  • 我正在尝试拍摄一个在C#中的Selenium WebDriver中执行的测试的屏幕截图。我正在使用Gallio运行我的测试。下面是我的截图代码: 我在测试中使用下面的代码来截屏: 问题是在执行时,语句打开一个新的chrome窗口,然后弹出一个错误。我的目的是把一个已有的行书截图。我应该做哪些改变来实现这一点? 附言-有没有一种方法可以在执行测试时拍摄屏幕截图而不初始化新的驱动程序?

  • 问题内容: 情况如下: 在线程中触发事件。 需要检索当前活动。 然后在该活动上创建一个对话框并显示。 问题:据我搜索,还没有办法在前台检索当前活动。 额外信息:这需要能够在多个活动中进行处理。因此,它可以在活动A或B或C中弹出。 问题答案: 我不确定这是否是您要寻找的东西,但这似乎很简单。http://iamvijayakumar.blogspot.com/2011/09/get- current

  • 问题内容: 我正在使用Express和EJS来提供页面。我正在为用户界面使用Bootstrap,尤其是导航栏。 我想在当前页面的项目中添加一个类,以显示当前页面。但是,我找不到如何从呈现页面的EJS代码中获取URL。 我发现了两种解决方法:我使用了将页面名称作为路由的参数传递的方法-这是不可扩展的,可能会导致问题。 另一种方法是在客户端使用jQuery 在页面准备就绪时将类添加到项目中-但这意味着

  • 使用Appium(用于windows上的android),我需要检查登录场景,输入用户和密码后,点击登录按钮,新(等待)活动打开,1。请指导我如何获得当前活动,即在按下登录按钮之前。2.按下登录按钮后,如何导航到等待活动,以便检查登录是否成功。

  • 我有一个Angular 2应用程序与几个嵌套的子视图。但它将通过几个显示在同一页面上。 null 例如: 假设您有一个包含某些元素的页面: 一个UI部分显示电影列表 当单击电影列表中的项目时,另一部分显示电影详细信息,但显示在同一页上。 单击电影详细信息中的角色名称时显示角色详细信息的另一个部分,也可显示在同一页上。 等.. 因此,我现在所做的是基于window.location获得URL并通过拆