在windows下使用python进行图形类操作时,经常需要用到发送快捷键的情况,如ALT+TAB、crtl + F1、Fn + f1等之类的操作,利用win32com模块,可以很便利的进行该类操作。如下一个示例是打开Outlook程序,获取第一个元素,并将其内容复制到粘贴板的示例:
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.Run("outlook")
shell.AppActivate("Outlook")
shell.SendKeys("^o", 0)
shell.SendKeys("^a", 0)
shell.SendKeys("^c", 0)
部分键映射关系如下:
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} |
几个特殊键键映射关系如下:
Key |
Special Character |
SHIFT |
+ |
CTRL |
^ |
ALT |
% |
ENTER |
~ |
通过以上映射关系表,如实现ctrl + F5 强制刷新浏览器页面就比较容易实现,shell.SendKeys("^{F5}", 0) 即可。