有没有办法在Mac OS X上使用Python在给定时间找到当前活动窗口的应用程序名称?
我正在为OSX开发一个项目,用户可以从中选择我需要生成PDF文档的文档集合(来自任何应用程序).标准的"Macintosh打印"对话框有一个PDF按钮,其中包含许多与PDF相关的命令,包括"另存为PDF ...".但是,我需要生成PDF文件而无需用户交互.理想情况下,我希望这适用于任何类型的文档.
这是我到目前为止探讨的选项:
我希望有一些方法可以与活动应用程序进行交互,就像用户执行以下步骤一样:
如果这是最好的方法(是吗?)那么真正的问题是:如何将UI事件发送到外部应用程序(击键,鼠标事件,菜单选择)?
更新:只是澄清一点:我需要转换为PDF的文档是由其他应用程序创建的文档.例如,用户可能会选择Word文档或Numbers电子表格或OmniGraffle绘图或网页.常见的分母是这些文档中的每一个都有一个相关的应用程序,该应用程序知道如何打印它(OSX知道如何将打印输出呈现为PDF文件).
因此,Cocoa Dev Central的样本没有帮助,因为它们是关于从我的应用程序生成PDF .
如何通过Python脚本最小化/最大化macOS中的窗口?在Windows上,有一个win32 api(该ShowWindow()函数)可以执行此操作。我想要等效的macOS。我希望脚本能够从其标题中找到一个窗口,然后将其最小化或最大化。
这可能吗?我认为我需要为此使用pyobjc模块。
我正在编写一个桌面使用情况统计应用程序。它运行一个后台守护程序,该守护程序定期唤醒,查找当前焦点的应用程序窗口的名称并将该数据记录在数据库中。
我设法在 xprop 实用程序的帮助下在 Linux 桌面上执行此操作(您可以在此处找到它)。
我怎样才能在 Mac OSX 上做同样的事情?有没有直接/间接的方法可以从 python 脚本中执行此操作?(PyObjC?)
我正在尝试创建一个 AIR 应用程序来记录应用程序的使用情况,使用 AIR 从系统获取信息的唯一简单方法是使用命令行工具和抓取stdout。
我知道OS X 的top和ps等工具,但它们似乎都没有告诉我哪个应用程序/窗口处于活动状态,也许我什至不应该寻找进程?出于日志记录目的,我想首先获取当前活动窗口(和应用程序)的名称和标题。
我主要对 OS X 感兴趣,但将来也有 Windows 和 Linux 等价物会很棒。
如果尚不存在这样的工具,那么获得一些如何制作它们的指示会很棒。我还没有做过任何操作系统级别的编程,但我认为创建一个命令行工具应该是更容易做的事情之一(完全忽略 GUI 框架)。
如果不支持Accessibility API,我如何获得窗口的标题,位置和大小?辅助功能检查员根本看不到它.说,这是在X11.app(X11->应用程序 - >终端)xterm窗口.
macos ×5
cocoa ×3
python ×3
objective-c ×2
pyobjc ×2
applescript ×1
automator ×1
command-line ×1
desktop ×1
pdf ×1
window ×1
x11 ×1