pywinauto 库支持通过 send_keys() 方法进行快捷键操作。以下是按键对应的符号和名称:
+
| 按键 | 对应参数 |
|---|---|
| Ctrl+S(保存) | ^s |
| Ctrl+A(全选) | ^a |
| Ctrl+Enter | ^{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_keysapp = 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_keysapp = 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 方法直接设置输入框的文本值,光标会位于文本的最左边,按回车键后文本会被换行,但不支持快捷键操作。type_keys 方法模拟键盘字符输入,支持中文输入,光标位于文本的最右边,并且支持快捷键操作,推荐使用 type_keys。