跳到主要内容

鼠标输入

移动指针、点击、滚动,或按窗口、找图结果把鼠标移到目标位置。

当前模块定义

sys:mouse基础Action
标准模块
输入 19 · 输出 5 · 枚举 5

输入参数

  • 类型typeEnum必填

    操作类型

    填写 固定输入默认 restore
    24 个选项还原鼠标位置、移动距离、移动到(x,y分别指定
    还原鼠标位置默认restore
    移动距离move
    移动到(x,y分别指定moveTo
    移动到(x,y一同指定moveToXy
    单击click
    双击dbclick
    按下down
    抬起up
    滚动scroll
    按下CtrlctrlDown
    松开CtrlctrlUp
    按下ShiftshiftDown
    松开ShiftshiftUp
    移动到窗口位置:相对于窗口左上角toWinTL
    移动到窗口位置:相对于窗口右上角toWinTR
    移动到窗口位置:相对于窗口左下角toWinBL
    移动到窗口位置:相对于窗口右下角toWinBR
    移动到窗口位置:窗口中心toWinCenter
    移动到窗口位置:xy一同指定moveToWinXy
    移动到位图位置(图片文件locateByBitmap
    移动到位图位置(图片变量locateByBitmapVar
    获取鼠标位置(弹出面板前位置getMouseOriginPosition
    获取鼠标位置及指针类型(当前位置getMouseCurrentPosition
    显示鼠标位置提示showIndicator
  • 窗口句柄hWndInteger可选

    目标窗口的句柄。留空或 0 表示操作前台窗口。

    填写 输入或变量条件 仅:toWinTL, toWinTR, toWinBL, toWinBR, toWinCenter, moveToWinXy
  • 按钮btnEnum必填

    操作哪个按钮

    填写 固定输入条件 仅:click, dbclick, down, up默认 left
    5 个选项左键、右键、中键
    左键默认left
    右键right
    中键middle
    X1x1
    X2x2
  • 位图路径bmpText必填

    需要在屏幕中查找的位图路径。位图必须和屏幕图像完全匹配,不能压缩。此时X、Y的值为相对于搜索位图的左上角的偏移。

    填写 输入或变量条件 仅:locateByBitmap
  • 位图变量bmpVarImage必填

    需要在屏幕中查找的位图。位图必须和屏幕图像完全匹配,不能压缩。此时X、Y的值为相对于搜索位图的左上角的偏移。

    填写 仅变量条件 仅:locateByBitmapVar
  • 查找范围bmpTargetTypeEnum可选

    位图查找范围

    填写 固定输入条件 仅:locateByBitmap, locateByBitmapVar默认 MainScreen
    4 个选项主屏幕、当前窗口、坐标范围
    主屏幕默认MainScreen
    当前窗口CurrentWindow
    坐标范围Rect
    所有屏幕AllScreens
  • 查找坐标范围searchRectText可选

    当"查找范围"为"坐标范围"时有效,格式为:left,top,right,bottom

    填写 输入或变量条件 仅:locateByBitmap, locateByBitmapVar
  • 定位位置bmpPositionEnum可选

    查找到图片后,鼠标指针移动到的位置

    填写 固定输入条件 仅:locateByBitmap, locateByBitmapVar默认 Center
    5 个选项位图中间、左上角、右上角
    位图中间默认Center
    左上角TopLeft
    右上角TopRight
    左下角BottomLeft
    右下角BottomRight
  • 颜色容差bmpColorErrorInteger可选

    匹配像素时允许每个颜色通道的偏差值0-100,0表示精确匹配,速度最快。

    填写 固定输入条件 仅:locateByBitmap, locateByBitmapVar默认 10
  • 最大匹配数量maxFindCountInteger可选

    找图的最大匹配数量。将对每个查找到的目标执行附加动作。

    填写 固定输入条件 仅:locateByBitmap, locateByBitmapVar默认 1
  • 重试次数retryCountInteger可选

    未找到位图时的重试次数。每次重试间隔300ms。

    填写 固定输入条件 仅:locateByBitmap, locateByBitmapVar默认 1
  • XxInteger必填

    水平方向的坐标/坐标偏移/移动距离(像素) 或 滚动数量(clicks。正值向右,负值向左)

    填写 输入或变量条件 仅:move, moveTo, scroll, toWinTL, toWinTR, toWinBL, toWinBR, toWinCenter, locateByBitmap, locateByBitmapVar默认 0
  • YyInteger必填

    垂直方向的坐标/坐标偏移/移动距离 或 滚动数量(clicks。正值向前,负值向后)

    填写 输入或变量条件 仅:move, moveTo, scroll, toWinTL, toWinTR, toWinBL, toWinBR, toWinCenter, locateByBitmap, locateByBitmapVar默认 0
  • 坐标xyText必填

    格式为:x,y,如:100,200。也可以使用百分比表示,如:50%,50% 表示屏幕中心。

    填写 输入或变量条件 仅:moveToXy
  • 相对坐标xyForWinText必填

    格式为:x,y,如:100,200(相对于窗口左上角向右100,向下200)。也可以使用百分比表示,如:50%,50% 表示窗口中心。

    填写 输入或变量条件 仅:moveToWinXy
  • 逐渐移动到目标slowMoveBoolean可选

    逐渐移动而不是直接移动到目标位置。

    填写 固定输入条件 仅:move, moveTo, toWinTL, toWinTR, toWinBL, toWinBR, toWinCenter, locateByBitmap, locateByBitmapVar, moveToXy, moveToWinXy默认 false
  • 移动后操作extActionEnum必填

    移动位置后,需要执行的动作

    填写 固定输入条件 仅:restore, move, moveTo, toWinTL, toWinTR, toWinBL, toWinBR, toWinCenter, locateByBitmap, locateByBitmapVar, moveToXy, moveToWinXy默认 none
    5 个选项无、左键单击、左键双击
    默认none
    左键单击left
    左键双击leftDbClick
    右键单击right
    中键单击middle
  • 操作完成后恢复鼠标位置restoreMousePosBoolean可选
    填写 固定输入条件 仅:move, moveTo, toWinTL, toWinTR, toWinBL, toWinBR, toWinCenter, locateByBitmap, locateByBitmapVar, moveToXy, moveToWinXy默认 false
  • 失败后中止动作stopIfFailBoolean可选

    获取位置失败后,是否停止后续动作的执行。

    填写 固定输入条件 仅:locateByBitmap, locateByBitmapVar默认 true

输出参数

  • 找图定位是否成功isSuccessBoolean

    操作是否成功

    条件 仅:locateByBitmap, locateByBitmapVar
  • 鼠标位置mouseLocationText

    格式为X,Y的文本

    条件 仅:getMouseCurrentPosition, getMouseOriginPosition
  • 鼠标位置XmouseXInteger

    鼠标位置X坐标

    条件 仅:getMouseCurrentPosition, getMouseOriginPosition
  • 鼠标位置YmouseYInteger

    鼠标位置Y坐标

    条件 仅:getMouseCurrentPosition, getMouseOriginPosition
  • 光标类型cursorTypeText

    当前的鼠标指针形状类型

    条件 仅:getMouseCurrentPosition

概述

先选 类型,再填该类型需要的坐标、按钮或找图参数。默认类型是 还原鼠标位置

鼠标输入

模拟鼠标输入
类型
操作类型
移动后操作
移动位置后,需要执行的动作

屏幕坐标

主屏幕左上角是原点 (0, 0)。多屏时仍以主屏左上角为原点。X 向右增大,Y 向下增大。在下图里移动指针,可直接读出坐标。

主屏 1920×1080
副屏(X ≥ 1920
当前指针 x = 538, y = 281落在主屏。多屏时仍以主屏左上角为原点。

通用参数

这些项只在部分类型下出现。

移动后操作:移到目标后立刻执行的点击。可选:无、左键单击、左键双击、右键单击、中键单击。

操作完成后恢复鼠标位置:点完后把指针移回操作前的位置。

逐渐移动到目标:分成多次挪过去,用来触发某些软件对“鼠标经过”的响应。

窗口句柄:相对窗口定位时指定目标窗口。留空或 0 表示前台窗口(当前有输入焦点的窗口)。句柄是 Windows 给窗口的数字,可用获取窗口类模块得到。

操作类型

还原鼠标位置

把指针送回弹出 Quicker 面板之前的位置。用面板点选动作时指针会先移到动作上,需要在原处点击时用这个类型。

用悬浮按钮、悬浮面板或快捷键触发时,拿不到“弹出面板前”的位置,这一步会无效。

移动距离

当前位置平移,单位像素。X 正右负左,Y 正下负上。

鼠标输入

模拟鼠标输入
类型
操作类型
X
0
水平方向的坐标/坐标偏移/移动距离(像素) 或 滚动数量(clicks。正值向右,负值向左)
Y
0
垂直方向的坐标/坐标偏移/移动距离 或 滚动数量(clicks。正值向前,负值向后)

移动到(x、y 分别指定)

移到屏幕绝对坐标,X、Y 分两个参数。

鼠标输入

模拟鼠标输入
类型
操作类型
X
x
水平方向的坐标/坐标偏移/移动距离(像素) 或 滚动数量(clicks。正值向右,负值向左)
Y
y
垂直方向的坐标/坐标偏移/移动距离 或 滚动数量(clicks。正值向前,负值向后)

移动到(x、y 一同指定)

一个文本参数写 x,y,例如 100,200。也可用百分比:50%,50% 是屏幕中心,50%,100 是水平居中、Y=100。

软件里可点坐标框右侧准星,在屏幕上点选。也可用 Snipaste 等工具读坐标。

鼠标输入

模拟鼠标输入
类型
操作类型
坐标
2429,762
格式为:x,y,如:100,200。也可以使用百分比表示,如:50%,50% 表示屏幕中心。

单击、双击、按下、抬起

当前指针位置发送按键事件。按钮可选左键、右键、中键、X1、X2。

鼠标输入

模拟鼠标输入
类型
操作类型
按钮
操作哪个按钮

滚动

对指针所在窗口发送滚轮消息。X、Y 填 click 数(通常一格滚轮 = 1 click):

  • Y:正值向前(向上翻),负值向后(向下翻)
  • X:正值向右,负值向左

鼠标输入

模拟鼠标输入
类型
操作类型
X
0
水平方向的坐标/坐标偏移/移动距离(像素) 或 滚动数量(clicks。正值向右,负值向左)
Y
0
垂直方向的坐标/坐标偏移/移动距离 或 滚动数量(clicks。正值向前,负值向后)

不要用悬浮按钮直接触发滚动(指针还在按钮上)。用面板触发时,若动作一开始就滚,先加等待时间等面板关掉。有的软件要循环发多次滚动才生效。

按下 / 松开 Ctrl、Shift

用来做「Ctrl + 点击」这类组合:先按下修饰键,再鼠标,再松开。也可以改用按键操作。修饰键和鼠标步骤之间建议加 10ms 以上延时(键盘、鼠标不在同一消息队列)。

移动到窗口位置

窗口位置或大小会变、但目标相对窗口固定时用。参考点:左上、右上、左下、右下、中心。

X / Y 是相对参考点的偏移,X 正右、Y 正下。相对右下角时,偏移通常是负值才能落到窗口内。

鼠标输入

模拟鼠标输入
类型
操作类型
窗口句柄
 
目标窗口的句柄。留空或 0 表示操作前台窗口。
X
0
水平方向的坐标/坐标偏移/移动距离(像素) 或 滚动数量(clicks。正值向右,负值向左)
Y
0
垂直方向的坐标/坐标偏移/移动距离 或 滚动数量(clicks。正值向前,负值向后)

移动到窗口位置:xy 一同指定 效果相当于相对左上角,但用一个字符串:100,20050%,50%(窗口中心)。

鼠标输入

模拟鼠标输入
类型
操作类型
窗口句柄
 
目标窗口的句柄。留空或 0 表示操作前台窗口。
相对坐标
50%,50%
格式为:x,y,如:100,200(相对于窗口左上角向右100,向下200)。也可以使用百分比表示,如:50%,50% 表示窗口中心。

获取鼠标位置

获取鼠标位置(弹出面板前位置):和「还原鼠标位置」用的是同一处坐标。

鼠标输入

模拟鼠标输入
类型
操作类型
鼠标位置
mouseLocation
格式为X,Y的文本
鼠标位置X
mouseX
鼠标位置X坐标
鼠标位置Y
mouseY
鼠标位置Y坐标

获取鼠标位置及指针类型(当前位置):取执行到这一步时的指针位置和形状,不是弹出面板前。

鼠标输入

模拟鼠标输入
类型
操作类型
鼠标位置
mouseLocation
格式为X,Y的文本
鼠标位置X
mouseX
鼠标位置X坐标
鼠标位置Y
mouseY
鼠标位置Y坐标
光标类型
cursorType
当前的鼠标指针形状类型

光标类型常见值:Arrow(默认)、IBeam(文本)、Hand(链接)、SizeAll / SizeWE / SizeNS / SizeNESW / SizeNWSE(移动或拉伸)、Wait、Appstarting。认不出来时返回原始数字。请在目标软件里实测。

显示鼠标位置提示

在当前指针处播一个由小变大的水波纹,用来标位置。

点击示意区可重播

鼠标输入

模拟鼠标输入
类型
操作类型

移动到位图位置(找图)

按小图在屏幕或窗口里查找,找到后把指针移过去。位图必须和屏幕像素一致,不能压缩。

只找位置、或要自己决定怎么点,请用屏幕找图。后续新动作也建议用那个模块。容错更高可用子程序 屏幕找图增强版

位图路径 / 位图变量:要找的小图。

查找范围:主屏幕、当前窗口、所有屏幕,或 坐标范围(再填 查找坐标范围,格式 left,top,right,bottom)。

定位位置:移到匹配区域的中间或四角。下图 A 是左上角,B 是中间。

颜色容差:每个颜色通道允许的偏差,01000 是精确匹配,最快。默认 10

最大匹配数量:最多处理几个匹配;每个匹配都会执行 移动后操作。默认 1

重试次数:找不到时重试,每次间隔 300ms。

X / Y:在定位点上再偏移。

失败后中止动作:找不到是否停掉后面的步骤。默认开启。

找图定位是否成功:布尔输出。

鼠标输入

模拟鼠标输入
类型
操作类型
位图变量
img
需要在屏幕中查找的位图。位图必须和屏幕图像完全匹配,不能压缩。此时X、Y的值为相对于搜索位图的左上角的偏移。
查找范围
位图查找范围
查找坐标范围
 
当"查找范围"为"坐标范围"时有效,格式为:left,top,right,bottom
定位位置
查找到图片后,鼠标指针移动到的位置
颜色容差
0
匹配像素时允许每个颜色通道的偏差值0-100,0表示精确匹配,速度最快。
最大匹配数量
50
找图的最大匹配数量。将对每个查找到的目标执行附加动作。
重试次数
1
未找到位图时的重试次数。每次重试间隔300ms。
X
0
水平方向的坐标/坐标偏移/移动距离(像素) 或 滚动数量(clicks。正值向右,负值向左)
Y
0
垂直方向的坐标/坐标偏移/移动距离 或 滚动数量(clicks。正值向前,负值向后)
移动后操作
移动位置后,需要执行的动作
找图定位是否成功
imgTrue
操作是否成功

示例:截图后点击匹配位置

先截一块图存进 img,再循环找图并点击。参考 分享动作

屏幕截图截图后位图存入 img 变量
重复重复10次,循环间隔: ms,中止条件:
等待时间等待 100 ms
鼠标输入找到截图位置并点击
赋值判断是否找图成功
提示消息

限制与排障

  • 滚动只作用在指针所在窗口。悬浮按钮触发时指针还在按钮上,滚动会打偏。
  • Ctrl/Shift + 鼠标时,键盘步骤和鼠标步骤之间加 10ms 以上延时。
  • 「还原 / 获取弹出面板前位置」依赖面板触发;快捷键、悬浮按钮没有这个坐标。
  • 找图对压缩、缩放、主题变化敏感;对不上就加大容差,或改用屏幕找图

相关链接

更新于