在Mac 10.6中,我希望能够通过Python使一个活动应用程序变为非活动状态或最小化。
我知道在Windows上可以使用Python的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)
`puts \`osascript -e 'tell application "System Events" to keystroke "m" using {command down}'\``
或者传入一个文件来执行额外的osascript脚本 `puts \`osascript example.as\``
- danmayer试试appscript,这是一个在PyPI中提供的苹果事件桥接工具:
from appscript import app, k
app('System Events').keystroke('N', using=k.command_down)
除了将按键发送到当前活动的应用程序之外,您还可以将其发送到特定的应用程序。如下所示传递以下内容给osascript,或将其保存到文件中并将文件传递给osascript。
tell application "Safari"
activate
tell application "System Events" to keystroke "r" using {command down}
end tell
SendKeys
从pip
编写的脚本也能在OS X上工作,我创建了一个文件/Library/Python/2.7/site-packages/SendKeys/__init__.py
(site-packages
是pip
在我的Mac上安装所有内容的位置...不确定是否可配置。)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上运行。