当使用阿里云RPA内置的send_key方法或者可视化模式下的“发送热键组件”时,可参考本文档快捷键简码说明来模拟对应快捷键操作。
基本介绍
阿里云RPA内置的send_key方法可用于模拟键盘按键、组合快捷键,以及发送所有的 ASCII 码及扩展 ASCII 码字符(0-255)。
若要发送 UNICODE 编码的字符则必须使用“ASC”选项加上您要发送的字符代码,参考用例如下:
# 注意事项:
# 1. 在使用两位数的 ASCII 码时必须在前面加一个 0,否则将使用 437号代码页;
# 2. 如果要发送 UNICODE 字符则输入该字符代码;
# 示例一:如果要发送 ASCII 字符 Á则参考下例(相当于按住ALT键并在数字键盘上顺序按下193)
rpa.ui.win32.send_key("{ASC 193}")
# 示例二:如果要发送汉字字符 “赞”则参考下例(相当于按住ALT键并在数字键盘上顺序按下54494)
rpa.ui.win32.send_key("{ASC 54494}")
在RPA可视化模式下,使用“输入热键”组件时,也会用到热键简码,如下图所示:
重复按键
若要重复发送某些按键,可参考 {按键简码 次数} 的格式来填写简码,可参考下例:
# 连续4次按下 DEL 键
rpa.ui.win32.send_key("{DEL 4}")
# 发送30个字符S
rpa.ui.win32.send_key("{S 30}")
# 连续4次按下 SHIFT+TAB
rpa.ui.win32.send_key("+{TAB 4}")
简码形式 | 含义 |
^{a} | 模拟Ctrl + A操作 |
!{a} | 模拟Alt + A操作 |
+{a} | 模拟Shift + A操作 |
#{a} | 模拟WIN + A操作 |
按住某按键
如果要按住(保持按下状态)某个按键,可参考以下示例
# 按住按键 A
rpa.ui.win32.send_key("{A DOWN}")
# 松开按键 A
rpa.ui.win32.send_key("{A UP}")
配合变量操作热键
1. 如果要用变量来指定重复发送的次数,参考下例:
n = 4
rpa.ui.win32.send_key("+{TAB %s }" % n)
2. 如果要用变量来指定要重复发送的 ASCII 字符(比如 A),参考下例:
x = chr(65)
rpa.ui.win32.send_key("{ %s 4}" % x)
热键清单
Send 命令(无标志参数) | 键击结果 |
{!} | ! |
{#} | # |
{+} | + |
{^} | ^ |
{{} | { |
{}} | } |
{SPACE} | 空格 |
{ENTER} | 主键盘区的 回车键 |
{ALT} | ALT |
{BACKSPACE} 或 {BS} | 退格 |
{DELETE} 或 {DEL} | 删除(DELETE) |
{UP} | 向上箭头 |
{DOWN} | 向下箭头 |
{LEFT} | 向左箭头 |
{RIGHT} | 向右箭头 |
{HOME} | HOME |
{END} | END |
{ESCAPE} 或 {ESC} | Esc键 |
{INSERT} 或 {INS} | INS(Insert) |
{PGUP} | PGUP(PageUp) |
{PGDN} | PGDN(PageDown) |
{F1} - {F12} | 功能键 |
{TAB} | TAB |
{PRINTSCREEN} | PRINTSCREEN |
{LWIN} | 左徽标键 |
{RWIN} | 右徽标键 |
{NUMLOCK} | NUMLOCK |
{CTRLBREAK} | Ctrl+Break |
{PAUSE} | PAUSE |
{CAPSLOCK} | CAPSLOCK |
{NUMPAD0} - {NUMPAD9} | 数字键盘上的 数字键 |
{NUMPADMULT} | 数字键盘上的 乘号 |
{NUMPADADD} | 数字键盘上的 加号 |
{NUMPADSUB} | 数字键盘上的 减号 |
{NUMPADDIV} | 数字键盘上的 除号 |
{NUMPADDOT} | 数字键盘上的 点号 |
{NUMPADENTER} | 数字键盘上的 回车键 |
{APPSKEY} | Windows 应用程序键 |
{LALT} | 左 ALT 键 |
{RALT} | 右 ALT 键 |
{LCTRL} | 左 CTRL 键 |
{RCTRL} | 右 CTRL 键 |
{LSHIFT} | 左 Shift 键 |
{RSHIFT} | 右 Shift 键 |
{SLEEP} | 系统休眠(SLEEP)键 |
{ALTDOWN} | 按住 ALT 键直到发送 {ALTUP} 为止 |
{SHIFTDOWN} | 按住 SHIFT 键直到发送 {SHIFTUP} 为止 |
{CTRLDOWN} | 按住 CTRL 键直到发送 {CTRLUP} 为止 |
{LWINDOWN} | 按住左徽标键直到发送 {LWINUP} 为止 |
{RWINDOWN} | 按住右徽标键直到发送 {RWINUP} 为止 |
{ASC nnnn} | 发送 ALT+nnnn 组合键 |
用法举例
大多数笔记本电脑的键盘上都会有一个特殊的 Fn 键,此键无法被模拟。
send_key是非常有用的一个函数/命令,因为我们可用它来对窗口进行操作而无需使用鼠标。
1. 例如,先打开文件夹选项窗口(位于控制面板),参考以下指令来实现对应操作:
send_key("{TAB}") | 切换到(焦点切换)下一个控件(按钮、复选框等) |
send_key("+{TAB}") | 切换到上一个控件 |
send_key("^{TAB}") | 切换到下一个窗口标签 |
send_key("^+{TAB}") | 切换到上一个窗口标签 |
send_key("{SPACE}") | 可用来切换复选框的选中状态或点击某个按钮 |
send_key("{+}") | 通常用来选中某个复选框(如果它“确实是”复选框的话) |
send_key("{-}") | 通常用来取消选中某个复选框 |
send_key("{NumPadMult}") | 完全展开 SysTreeView32 控件内显示的文件夹 |
2. 组合 Alt 键使用可访问菜单项,请打开记事本窗口然后参考以下指令来实现对应操作:
send_key("!f") | 发送Alt+f,这是打开记事本的文件菜单的快捷键,您还可以试试其它的! |
send_key("{DOWN}") | 移动焦点到下一个菜单项 |
send_key("{UP}") | 移动焦点到上一个菜单项 |
send_key("{LEFT}") | 切换到左边的菜单或收缩子菜单 |
send_key("{RIGHT}") | 切换到右边的菜单或展开子菜单 |