Is there a sendKey for Mac in Python?

后端 未结 5 1498

In Mac 10.6, I want to cause an active application to become de-active, or minimized by Python

I know I could use sendKey in Windows with Python, then what about in

相关标签:
5条回答
  • 2020-12-02 21:42

    To make my scripts which already work on Windows using SendKeys from pip also work on OS X, I made a file /Library/Python/2.7/site-packages/SendKeys/__init__.py (site-packages is where pip puts everything it installs on my Mac... not sure if that's configurable or not.)

    The contents of the file are:

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

    Obviously it's not very robust, so I won't be putting it on pypi, but it's enough to make my scripts run on both OS X and Windows.

    0 讨论(0)
  • 2020-12-02 21:51

    Maybe you could run an OSA script (man osascript) from Python, for instance, and drive the application?

    0 讨论(0)
  • 2020-12-02 21:54

    Here is what I found from a different question on Stack Overflow. It works pretty good for my problem.

    import os
    cmd = """
    osascript -e 'tell application "System Events" to keystroke "m" using {command down}' 
    """
    # minimize active window
    os.system(cmd)
    
    0 讨论(0)
  • 2020-12-02 22:03

    Try appscript, an Apple event bridge available in PyPI:

    from appscript import app, k
    app('System Events').keystroke('N', using=k.command_down)
    
    0 讨论(0)
  • 2020-12-02 22:07

    In addition to Yinan, which will send the keystroke to the currently active application, you can send it to a specific application as follows. Pass the following to osascript as before, or save it to a file and pass the file to osascript

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

    This will send Cmd + r to Safari after bringing it to the foreground

    0 讨论(0)
提交回复
热议问题