Search code examples
pythonwindowssendkeys

How can I paste some string to the active window in Python?


Possible Duplicate:
How do I copy a string to the clipboard on Windows using Python?

Can someone make me an example or explain to me how can I paste something to the active window with Python?


Solution

  • It is easiest if you use the SendKeys package. You can find a Windows installer for various Python versions here.

    The simplest use case, sending plain text, is very simple:

    import SendKeys
    SendKeys.SendKeys("Hello world")
    

    You can do all sorts of nifty things using key-codes to represent for unprintable characters:

    import SendKeys
    SendKeys.SendKeys("""
        {LWIN}
        {PAUSE .25}
        r
        Notepad.exe{ENTER}
        {PAUSE 1}
        Hello{SPACE}World!
        {PAUSE 1}
        %{F4}
        n
    """)
    

    Read the documentation for full details.

    If for whatever reason you don't want to introduce a dependency on a non-standard library package, you can do the same thing using COM:

    import win32api
    import win32com.client
    
    shell = win32com.client.Dispatch("WScript.Shell")
    shell.Run("calc")
    win32api.Sleep(100)
    shell.AppActivate("Calculator")
    win32api.Sleep(100)
    shell.SendKeys("1{+}")
    win32api.Sleep(500)
    shell.SendKeys("2")
    win32api.Sleep(500)
    shell.SendKeys("~") # ~ is the same as {ENTER}
    win32api.Sleep(500)
    shell.SendKeys("*3")
    win32api.Sleep(500)
    shell.SendKeys("~")
    win32api.Sleep(2500)