当使用阿里云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}")  | 切换到右边的菜单或展开子菜单  |