19

在 Mac 10.6 中,我想让一个活动的应用程序变为非活动的,或者被 Python 最小化

我知道我可以在带有 Python 的 Windows 中使用 sendKey,那么在 Mac 中呢?

4

5 回答 5

32

这是我从 Stack Overflow 上的另一个问题中发现的。它对我的问题非常有效。

import os
cmd = """
osascript -e 'tell application "System Events" to keystroke "m" using {command down}' 
"""
# minimize active window
os.system(cmd)
于 2009-11-20T14:10:30.820 回答
7

试试appscript,一个在 PyPI 中可用的 Apple 事件桥:

from appscript import app, k
app('System Events').keystroke('N', using=k.command_down)
于 2011-12-22T18:28:45.667 回答
6

除了将按键发送到当前活动的应用程序的 Yinan 之外,您还可以将其发送到特定的应用程序,如下所示。像以前一样将以下内容传递给 osascript,或者将其保存到文件并将文件传递给 osascript

tell application "Safari"
    activate
    tell application "System Events" to keystroke "r" using {command down}
end tell

这会将Cmd + r带到前台后将其发送到 Safari

于 2010-11-17T03:35:03.010 回答
0

例如,也许您可​​以从 Python 运行 OSA 脚本(man osascript)并驱动应用程序?

于 2009-11-20T14:12:28.813 回答
0

为了使我已经在 Windows 上使用SendKeysfrom的脚本pip也可以在 OS X 上运行,我制作了一个文件/Library/Python/2.7/site-packages/SendKeys/__init__.py(将它安装在我的 Mac 上的所有东西都放在site-packages哪里pip......不确定这是否可配置。)

该文件的内容是:

def SendKeys(keys):
    if keys == '{ENTER}'
        keys = 'return'
    from os import system
    system('osascript -e \'tell application "System Events" to keystroke ' + keys + "'")

显然它不是很健壮,所以我不会安装它pypi,但它足以让我的脚本在 OS X 和 Windows 上运行。

于 2015-03-14T01:43:11.970 回答