在 Mac 10.6 中,我想让一个活动的应用程序变为非活动的,或者被 Python 最小化
我知道我可以在带有 Python 的 Windows 中使用 sendKey,那么在 Mac 中呢?
这是我从 Stack Overflow 上的另一个问题中发现的。它对我的问题非常有效。
import os
cmd = """
osascript -e 'tell application "System Events" to keystroke "m" using {command down}'
"""
# minimize active window
os.system(cmd)
试试appscript,一个在 PyPI 中可用的 Apple 事件桥:
from appscript import app, k
app('System Events').keystroke('N', using=k.command_down)
除了将按键发送到当前活动的应用程序的 Yinan 之外,您还可以将其发送到特定的应用程序,如下所示。像以前一样将以下内容传递给 osascript,或者将其保存到文件并将文件传递给 osascript
tell application "Safari"
activate
tell application "System Events" to keystroke "r" using {command down}
end tell
这会将Cmd + r带到前台后将其发送到 Safari
例如,也许您可以从 Python 运行 OSA 脚本(man osascript)并驱动应用程序?
为了使我已经在 Windows 上使用SendKeys
from的脚本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 上运行。