With sendkeys (Python/Pywin32 uses WScript from Windows Scripting Host) one can control applications via shortcuts. eg.
This example first opens Microsoft Outlook, takes the first element, marks the full text and takes it into the clipboard (CTRL + C).
import win32com.client shell = win32com.client.Dispatch("WScript.Shell") shell.Run("outlook") shell.AppActivate("Outlook") shell.SendKeys("^o", 0) # 1 für Pause = true 0 für nein shell.SendKeys("^a", 0) shell.SendKeys("^c", 0)
Here is a list of WScript-commands:
Key | Argument |
BACKSPACE | {BACKSPACE}, {BS}, or {BKSP} |
BREAK | {BREAK} |
CAPS LOCK | {CAPSLOCK} |
DEL or DELETE | {DELETE} or {DEL} |
DOWN ARROW | {DOWN} |
END | {END} |
ENTER | {ENTER} or ~ |
ESC | {ESC} |
HELP | {HELP} |
HOME | {HOME} |
INS or INSERT | {INSERT} or {INS} |
LEFT ARROW | {LEFT} |
NUM LOCK | {NUMLOCK} |
PAGE DOWN | {PGDN} |
PAGE UP | {PGUP} |
PRINT SCREEN | {PRTSC} |
RIGHT ARROW | {RIGHT} |
SCROLL LOCK | {SCROLLLOCK} |
TAB | {TAB} |
UP ARROW | {UP} |
F1 | {F1} |
F2 | {F2} |
F3 | {F3} |
F4 | {F4} |
F5 | {F5} |
F6 | {F6} |
F7 | {F7} |
F8 | {F8} |
F9 | {F9} |
F10 | {F10} |
F11 | {F11} |
F12 | {F12} |
F13 | {F13} |
F14 | {F14} |
F15 | {F15} |
F16 | {F16} |
Steuerung, Shift, ALT und Enter werden wie folgt gesendet:
Key | Special Character |
SHIFT | + |
CTRL | ^ |
ALT | % |
ENTER | ~ |
The documentation of Sendkeys you can find at Microsoft.
Hi thanks for this example 🙂 But you need to add a short delay (sleep(seconds)) before each shell.SendKeys command.
Because Outlook isn’t that fast to open a email immediately and copy a text that fast.
import time
time.sleep(10)
#10 is how many seconds (in this case 10)
Hi.. how can i use sendKeys on Internet explorer application?
Simply use the shortcuts of Internet Explorer.
Hi guys
I’m trying ALT+TAB by doing keyboard.send_keys(‘%{TAB}’)
But it seems not to work. A new window did not appear
first of all: i expect the code to just work under windows. so as far as i know alt+tab should switch the window, not open a new one.
if you used the code snippet on top, you need to use
shell.SendKeys(‘%{TAB}’)
you used “keyboard”, which may be possible, if you changed “shell” to “keyboard”. and you need to be carefull with the way of writing, so use “SendKeys”, not “send_keys”
Very instructive compilation. Good work