一、键盘操作
1.调试示例:键盘码调试
print(dir(Key))
['ADD',
'ALT',
'ALTGR',
'BACKSPACE',
'CAPS_LOCK',
'CMD',
'CONTEXT',
'CTRL',
'C_ADD',
'C_ALT',
'C_ALTGR',
'C_CAPS_LOCK',
'C_CMD',
'C_CONTEXT',
'C_CTRL',
'C_DECIMAL',
'C_DELETE',
'C_DIVIDE',
'C_DOWN',
'C_END',
'C_ESC',
'C_F1',
'C_F10',
'C_F11',
'C_F12',
'C_F13',
'C_F14',
'C_F15',
'C_F2',
'C_F3',
'C_F4',
'C_F5',
'C_F6',
'C_F7',
'C_F8',
'C_F9',
'C_HOME',
'C_INSERT',
'C_LEFT',
'C_META',
'C_MINUS',
'C_MULTIPLY',
'C_NEXT',
'C_NUM0',
'C_NUM1',
'C_NUM2',
'C_NUM3',
'C_NUM4',
'C_NUM5',
'C_NUM6',
'C_NUM7',
'C_NUM8',
'C_NUM9',
'C_NUM_LOCK',
'C_PAGE_DOWN',
'C_PAGE_UP',
'C_PAUSE',
'C_PRINTSCREEN',
'C_RIGHT',
'C_SCROLL_LOCK',
'C_SEPARATOR',
'C_SHIFT',
'C_UP',
'C_WIN',
'DECIMAL',
'DELETE',
'DIVIDE',
'DOWN',
'END',
'ENTER',
'ESC',
'F1',
'F10',
'F11',
'F12',
'F13',
'F14',
'F15',
'F2',
'F3',
'F4',
'F5',
'F6',
'F7',
'F8',
'F9',
'HOME',
'INSERT',
'LEFT',
'META',
'MINUS',
'MULTIPLY',
'NEXT',
'NUM0',
'NUM1',
'NUM2',
'NUM3',
'NUM4',
'NUM5',
'NUM6',
'NUM7',
'NUM8',
'NUM9',
'NUM_LOCK',
'PAGE_DOWN',
'PAGE_UP',
'PAUSE',
'PRINTSCREEN',
'RIGHT',
'SCROLL_LOCK',
'SEPARATOR',
'SHIFT',
'SPACE',
'TAB',
'UP',
'WIN',
'__class__',
'__copy__',
'__deepcopy__',
'__delattr__',
'__dict__',
'__doc__',
'__ensure_finalizer__',
'__eq__',
'__format__',
'__getattribute__',
'__hash__',
'__initProxy__',
'__init__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__str__',
'__subclasshook__',
'__supernames__',
'__unicode__',
'__weakref__',
'_getPyInstance',
'_getPySystemState',
'_setPyInstance',
'_setPySystemState',
'addHotkey',
'cMax',
'cMin',
'class',
'classDictInit',
'clone',
'convertKeyToText',
'createKeyTable',
'dump',
'equals',
'finalize',
'getClass',
'getHotkeyModifier',
'getTextFromKeycode',
'hashCode',
'isLockOn',
'isModifier',
'isRepeatable',
'keyMaxLength',
'keyboardUS',
'notify',
'notifyAll',
'removeHotkey',
'toJavaKeyCode',
'toJavaKeyCodeFromText',
'toJavaKeyCodeText',
'toString',
'wait'
]
2.控制字符
键名 |
sikuliX中的命令 |
Shift |
type(Key.SHIFT) |
Ctrl |
type(Key.CTRL) |
Alt键 |
type(Key.ALT) |
Tab(制表符) |
type(Key.TAB) |
大写锁定 |
type(Key.CAPSLOCK) |
输入 |
type(Key.ENTER) |
删除 |
type(Key.DELETE) |
退格键 |
type(Key.BACKSPACE) |
插入 |
type(Key.INSERT) |
Home |
type(Key.HOME) |
End |
type(Key.END) |
ESC |
type(Key.ESC) |
空格 |
type(Key.SPACE) |
视窗 |
type(Key.WIN) |
换页 |
type(Key.PAGE_UP) |
向下翻页 |
type(Key.PAGE_DOWN) |
列印画面 |
type(Key.PRINTSCREEN) |
数字键盘锁 |
type(Key.NUM_LOCK) |
滚动锁 |
type(Key.SCROLL_LOCK) |
F1 |
type(Key.F1) |
F2 |
type(Key.F2) |
F3 |
type(Key.F3) |
F4 |
type(Key.F4) |
F5 |
type(Key.F5) |
F6 |
type(Key.F6) |
F7 |
type(Key.F7) |
F8 |
type(Key.F8) |
F9 |
type(Key.F9) |
F10 |
type(Key.F10) |
F11 |
type(Key.F11) |
F12 |
type(Key.F12) |
光标键:向上 |
type(Key.UP) |
光标键:向下 |
type(Key.DOWN) |
光标键:左 |
type(Key.LEFT) |
光标键:向右 |
type(Key.RIGHT) |
向上移动光标两次 |
type(Key.UP * 2) |
向下移动光标两次 |
type(Key.DOWN * 2) |
向左移动光标两次 |
type(Key.LEFT * 2) |
向右移动光标两次 |
type(Key.RIGTH * 2) |
按特定键 |
KeyDown(Key.*) 需要使用Region()进行区域设置。 |
释放特定键 |
KeyUp(Key.*) 需要使用Region()设置区域。 |
3.快捷键
常见操作 |
快捷键 |
sikuliX中的命令 |
复制 |
Ctrl + C |
type("c" , Key.CTRL) |
剪下 |
Ctrl + X |
type("x" , Key.CTRL) |
贴上 |
Ctrl + V |
type("v" , Key.CTRL) |
搜索 |
Ctrl + F |
type("f" , Key.CTRL) |
打印 |
Ctrl + P |
type("p" , Key.CTRL) |
撤消 |
Ctrl + Z |
type("z" , Key.CTRL) |
重做 |
Ctrl + Y Ctrl + Shift + Z |
type("y" , Key.CTRL); type("z" , Key.CTRL + Key.SHIFT) |
关闭标签 |
Ctrl + F4 |
type(Key.F4 , Key.CTRL) |
还原标签 |
Ctrl + Shift + T |
type("t" , Key.CTRL + Key.SHIFT) |
浏览器缓存刷新(强制刷新) |
Ctrl + F5 |
type(Key.F5 , Key.CTRL) |
关闭窗口 |
Alt + F4 |
type(Key.F4 , Key.ALT) |
最小化所有窗口 |
Windows + M |
type("m" , Key.WIN) |
显示桌面 |
Windows + D |
type("d" , Key.WIN) |
最小化窗口(当窗口为正常大小时)恢复为原始大小(当窗口为最大化时) |
Windows + 光标键:向下,如果最大化,请执行上述两次。 |
type(Key.DOWN , Key.WIN) |
窗口最大化 |
Windows +光标键:向上 |
type(Key.UP , Key.WIN) |
切换活动窗口 |
Windows + Tab; Windows + Shift + Tab |
type(Key.TAB , Key.WIN); type(Key.TAB , Key.WIN + Key.SHIFT) |
启动任务管理器 |
Ctrl + Shift + ESC |
type(Key.ESC , Key.CTRL + Key.SHIFT) |
启动资源管理器 |
Windows + e |
type("e" , Key.WIN) |
4.运算符
运算 |
sikuliX中运算符 |
加成 |
+ |
减法 |
– |
乘法 |
* |
除 |
/ |
余数计算 |
% |
除数的整数部分 |
// |
A的b次方 |
A ** B |
A的负数 |
-A |
逻辑或 |
or |
逻辑与 |
and |
否认 |
not |
a大于b |
a > b |
a小于b |
a < b |
a小于或等于b |
a <= b |
a大于或等于b |
a >= b |
a等于b |
a == b |
a不等于b |
a != b |
通过键盘操作提高了sikulix自动操作的稳定性;运用快捷键更是进一步减少sikulix命令行数;运算符不仅可以用于计算,还可以用于分支条件。综合以上知识,相信你能做一些有趣的RPA程序了,多多练习吧!
另外,如果type(各种按键)失灵了,还可以参照以下代码,用更底层的方式实现同样的功能。
type("e",Key.WIN)
keyDown(Key.WIN)
wait(0.2)
type("e")
keyUp()
click(Location(1043, 32))
type(Key.DOWN,Key.WIN)
click(Location(1043, 32))
wait(1)
keyDown(Key.WIN)
wait(0.2)
type(Key.DOWN)
wait(0.2)
keyUp()
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix