В Mac 10.6 я хочу, чтобы активное приложение было деактивным или сведено к минимуму с помощью Python
Я знаю, что я мог бы использовать sendKey в Windows с Python, а как насчет Mac?
В Mac 10.6 я хочу, чтобы активное приложение было деактивным или сведено к минимуму с помощью Python
Я знаю, что я мог бы использовать sendKey в Windows с Python, а как насчет Mac?
Вот что я нашел из другого вопроса о переполнении стека. Это работает очень хорошо для моей проблемы.
import os
cmd = """
osascript -e 'tell application "System Events" to keystroke "m" using {command down}'
"""
# minimize active window
os.system(cmd)
Попробуйте appscript, мост событий Apple, доступный в PyPI:
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 после приведения его на передний план
Чтобы мои скрипты, которые уже работают в Windows с помощью SendKeys
from 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.
Может быть, вы могли бы запустить OSA script (man osascript) из Python, например, и диск приложения?