windows 桌面GUI自动化- 10.pywinauto 键盘快捷键操作send_keys()
前言
pywinauto 快捷键操作,使用send_keys()方法
按键对应的符号
按键名称 对应符号
| 按键名称 | 对应符号 |
|---|---|
| SHIFT | + |
| CTRL | ^ |
| ALT | % |
| SPACE | |
| BACKSPACE | {BACKSPACE} {BS} or {BKSP} |
| BREAK | |
| CAPS LOCK | |
| DEL or DELETE | {DELETE} or {DEL} |
| DOWN ARROW | |
| END | |
| ENTER | {ENTER} or ~ |
| ESC | |
| HELP | |
| HOME | |
| INS or INSERT | {INSERT} or {INS} |
| LEFT ARROW | |
| NUM LOCK | |
| PAGE DOWN | |
| PAGE UP | |
| PRINT SCREEN | |
| RIGHT ARROW | |
| SCROLL LOCK | |
| TAB | |
| UP ARROW | |
| + | |
| - | |
| * | |
| / |
组合按键
| 按键 | 对应参数 |
|---|---|
| ctrl+s (保存) | ^s |
| ctrl+a (全选) | ^a |
| ctrl+ enter | ^ |
| ctrl+ shift+ s | ^+s |
快捷键操作
send_keys() 相关源码
def send_keys(keys,
pause=0.05,
with_spaces=False,
with_tabs=False,
with_newlines=False,
turn_off_numlock=True,
vk_packet=True):
"""Parse the keys and type them"""
keys = parse_keys(
keys, with_spaces, with_tabs, with_newlines,
vk_packet=vk_packet)
for k in keys:
k.run()
time.sleep(pause)
SendKeys = deprecated(send_keys)
快捷键操作记事本示例
from pywinauto import Application
from pywinauto.keyboard import send_keys
app = Application('uia').start("notepad.exe")
win = app.window(title_re="无标题 - 记事本")
# ALT+F
send_keys("%F")
# CTR+S
send_keys("^S")

type_keys() 编辑框输入
在编辑框输入键盘操作
from pywinauto import Application
from pywinauto.keyboard import send_keys
app = Application('uia').start("notepad.exe")
win = app.window(title_re="无标题 - 记事本")
# 直接设置文本值
win.child_window(title="文本编辑器").set_text("你好,世界!")
# 回车
win.child_window(title="文本编辑器").type_keys("{ENTER}")
# # 键盘输入
win.child_window(title="文本编辑器").type_keys("hello world! 上海-悠悠")
set_text 和 type_keys 区别
- set_text 是直接给输入框设置文本值,光标在最左边,按enter后,文本被换行, 不支持快捷键
- type_keys 模拟键盘字符的输入,可以支持中文,光标在最右边,支持快捷键,推荐用type_keys

浙公网安备 33010602011771号