SikuliX操作详解

一、键盘操作

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(各种按键)失灵了,还可以参照以下代码,用更底层的方式实现同样的功能。

# 方法1启动资源管理器
type("e",Key.WIN)


# 方法2启动资源管理器
# 用底层函数实现按下win键
keyDown(Key.WIN)
wait(0.2)
type("e")
keyUp()



# 方法1还原窗口尺寸
# 先点击要还原的窗口,再执行!
click(Location(1043, 32))
type(Key.DOWN,Key.WIN)



# 方法2还原窗口尺寸
click(Location(1043, 32))
wait(1)
keyDown(Key.WIN)
wait(0.2)
type(Key.DOWN)
wait(0.2)
keyUp()
posted @     阅读(948)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示