windows 桌面GUI自动化- 10.pywinauto 键盘快捷键操作send_keys()

前言

pywinauto 库支持通过 send_keys() 方法进行快捷键操作。以下是按键对应的符号和名称:

  • 代码语言:JavaScript
  • 代码运行次数:0
+

组合按键

按键 对应参数
Ctrl+S(保存) ^s
Ctrl+A(全选) ^a
Ctrl+Enter ^{ENTER}
Ctrl+Shift+S ^+s

快捷键操作

send_keys() 方法的相关源码如下:

  • 代码语言:JavaScript
  • 代码运行次数:0
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)

快捷键操作记事本示例

  • 代码语言:JavaScript
  • 代码运行次数:0
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() 编辑框输入

在编辑框中输入键盘操作的示例:

  • 代码语言:JavaScript
  • 代码运行次数:0
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_texttype_keys 区别

set_text 方法直接设置输入框的文本值,光标会位于文本的最左边,按回车键后文本会被换行,但不支持快捷键操作。type_keys 方法模拟键盘字符输入,支持中文输入,光标位于文本的最右边,并且支持快捷键操作,推荐使用 type_keys