-
Notifications
You must be signed in to change notification settings - Fork 262
mouse
操作鼠标
- GetCursorPos: 获取鼠标位置
- MoveR: 鼠标相对于上次坐标移动
- MoveTo: 鼠标移动到指定坐标
- MoveToEx: 鼠标移动到指定随机坐标
- MoveToSmooth: 按轨迹移动到指定坐标
- MoveToExSmooth: 随机目标点并按轨迹移动
- MovePath: 按指定路径移动
- DragPath: 按指定路径拖拽
- SetMouseTrajectory: 设置鼠标轨迹参数
- LeftClick: 按下鼠标左键
- LeftDoubleClick: 双击鼠标左键
- LeftDown: 按住鼠标左键
- LeftUp: 弹起鼠标左键
- MiddleClick: 按下鼠标中键
- MiddleDoubleClick: 双击鼠标中键
- MiddleDown: 按住鼠标中键
- MiddleUp: 弹起鼠标中键
- RightClick: 按下鼠标右键
- RightDoubleClick: 双击鼠标右键
- RightDown: 按住鼠标右键
- RightUp: 弹起鼠标右键
- XButton1Click: 按下鼠标侧键 1
- XButton1DoubleClick: 双击鼠标侧键 1
- XButton1Down: 按住鼠标侧键 1
- XButton1Up: 弹起鼠标侧键 1
- XButton2Click: 按下鼠标侧键 2
- XButton2DoubleClick: 双击鼠标侧键 2
- XButton2Down: 按住鼠标侧键 2
- XButton2Up: 弹起鼠标侧键 2
- Wheel: 垂直滚轮滚动指定距离
- HWheel: 水平滚轮滚动指定距离
- WheelDown: 滚轮向下滚
- WheelUp: 滚轮向上滚
- GetCursorShape: 获取当前鼠标形状特征
- SetMouseDelay: 设置鼠标点击时按下和弹起的时间间隔
普通点击优先用 MoveTo、MoveToEx,它们会直接移动到目标位置,速度快,也兼容旧脚本。
需要连续移动时再用轨迹接口,比如拖动地图、拖动背包物品、滑块、长按拖拽这类操作。轨迹接口会把一次移动拆成多个点发送,duration 表示整段轨迹的耗时,单位为毫秒。duration 传 0 时不会额外等待,但仍会按轨迹拆点。
如果需要统一调整轨迹风格,可以先调用 SetMouseTrajectory。它只影响 MoveToSmooth、MoveToExSmooth、MovePath、DragPath,不会改变 MoveTo、MoveToEx、点击和键盘输入。
路径格式统一为:
x1,y1|x2,y2|x3,y3
路径至少需要两个不同的点。坐标含义和当前鼠标绑定模式一致:绑定窗口后一般是窗口客户区坐标,未绑定时是屏幕坐标。
获取鼠标位置
long GetCursorPos(x,y)| 参数 | 类型 | 描述 |
|---|---|---|
| x | int* | 变参指针: 返回 X 坐标 |
| y | int* | 变参指针: 返回 Y 坐标 |
返回值
类型:int
- 0:失败
- 1:成功
示例
var x, y int
op.GetCursorPos(&x,&y)
printf("x:%d,y:%d",x,y)鼠标相对于上次的位置移动 rx,ry.
long MoveR(rx,ry)| 参数 | 类型 | 描述 |
|---|---|---|
| rx | int | 相对于上次的 X 偏移 |
| ry | int | 相对于上次的 Y 偏移 |
返回值
类型:int
- 0:失败
- 1:成功
示例
op.MoveR(rx,ry)把鼠标移动到目的点(x,y)
long MoveTo(x,y)| 参数 | 类型 | 描述 |
|---|---|---|
| x | int | X 坐标 |
| y | int | Y 坐标 |
返回值
类型:int
- 0:失败
- 1:成功
示例
op.MoveTo(x,y)把鼠标移动到目的范围内的任意一点
string MoveToEx(x,y,w,h)| 参数 | 类型 | 描述 |
|---|---|---|
| x | int | X 坐标 |
| y | int | Y 坐标 |
| w | int | 宽度(从 x 计算起) |
| h | int | 高度(从 y 计算起) |
返回值
类型:string
返回要移动到的目标点. 格式为 x,y. 比如 MoveToEx 100,100,10,10,返回值可能是 101,102
示例
// 移动鼠标到(100,100)到(110,110)这个矩形范围内的任意一点.
op.MoveToEx(100,100,10,10)注:此函数会把鼠标移动到指定范围 (x,y,x+w,y+h) 内的随机一点。w 或 h 可以为负数,此时随机范围会向 x 或 y 的反方向展开。
按轨迹把鼠标移动到指定坐标。
long MoveToSmooth(x,y,duration)| 参数 | 类型 | 描述 |
|---|---|---|
| x | int | 目标 X 坐标 |
| y | int | 目标 Y 坐标 |
| duration | int | 整段轨迹耗时,单位毫秒 |
返回值
类型:int
- 0:失败
- 1:成功
示例
// 用 200 毫秒移动到 300, 180
op.MoveToSmooth(300,180,200)在指定范围内随机取一个目标点,然后按轨迹移动过去。
string MoveToExSmooth(x,y,w,h,duration)| 参数 | 类型 | 描述 |
|---|---|---|
| x | int | 起始 X 坐标 |
| y | int | 起始 Y 坐标 |
| w | int | 宽度,从 x 开始计算 |
| h | int | 高度,从 y 开始计算 |
| duration | int | 整段轨迹耗时,单位毫秒 |
返回值
类型:string
成功时返回最终移动到的点,格式为 x,y。失败时返回空字符串。
示例
// 在按钮区域内随机取点,再用轨迹移动过去
pos = op.MoveToExSmooth(500,300,80,30,180)注:w 或 h 可以为负数,随机范围会向反方向展开。
按指定路径移动鼠标。适合使用录制出来的轨迹,或者脚本自己生成的轨迹点。
long MovePath(path,duration)| 参数 | 类型 | 描述 |
|---|---|---|
| path | string | 路径点,格式为 `x,y |
| duration | int | 整条路径耗时,单位毫秒 |
返回值
类型:int
- 0:失败
- 1:成功
示例
op.MovePath("100,120|140,132|190,160|240,210",300)注:路径至少需要两个不同的点。点与点之间距离较远时,内部会补中间点,不会只在几个关键点之间硬跳。
按指定路径拖拽鼠标。函数会先移动到路径第一个点,然后按下左键,沿路径移动到最后一个点,最后松开左键。
long DragPath(path,duration)| 参数 | 类型 | 描述 |
|---|---|---|
| path | string | 拖拽路径,格式为 `x,y |
| duration | int | 拖拽过程耗时,单位毫秒 |
返回值
类型:int
- 0:失败
- 1:成功
示例
// 从 300,400 拖到 520,420
op.DragPath("300,400|380,410|450,416|520,420",500)注:DragPath 适合地图拖动、滑块、物品拖拽。只是移动鼠标时用 MovePath,需要按住左键拖动时用 DragPath。
设置鼠标轨迹参数。这个设置保存在当前对象里,后续的轨迹移动都会使用这组参数。
long SetMouseTrajectory(mode,min_duration,max_duration,jitter,start_delay,end_delay)| 参数 | 类型 | 描述 |
|---|---|---|
| mode | int | 轨迹类型:0 默认,1 直线,2 贝塞尔曲线 |
| min_duration | int | 最小轨迹耗时,单位毫秒。duration 传 0 时会使用这个值 |
| max_duration | int | 最大轨迹耗时,单位毫秒。传 0 表示不限制 |
| jitter | int | 抖动幅度,范围 0-100。0 表示不做曲线偏移 |
| start_delay | int | 起步停顿,单位毫秒。移动前等待 |
| end_delay | int | 落点停顿,单位毫秒。DragPath 会在松开左键前等待 |
返回值
类型:int
- 0:失败
- 1:成功
示例
// 直线移动,至少 80 毫秒,最多 300 毫秒,到点后停 30 毫秒
op.SetMouseTrajectory(1,80,300,0,0,30)
op.MoveToSmooth(600,420,0)
// 使用曲线轨迹,保留轻微抖动,适合拖拽类操作
op.SetMouseTrajectory(2,120,600,18,40,80)
op.DragPath("300,400|380,410|460,418|520,420",0)注:SetMouseTrajectory 只管轨迹移动。鼠标按下和弹起之间的间隔仍然用 SetMouseDelay 设置。
MovePath 和 DragPath 的路径由脚本传入,内部不会再改成别的曲线;它们会使用这里设置的最小/最大耗时、起步停顿和落点停顿。
按下鼠标左键
long LeftClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.LeftClick()双击鼠标左键
long LeftDoubleClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.LeftDoubleClick()按住鼠标左键
long LeftDown()返回值
类型:int
- 0:失败
- 1:成功
示例
op.LeftDown()弹起鼠标左键
long LeftUp()返回值
类型:int
- 0:失败
- 1:成功
示例
op.LeftUp()按下鼠标中键
long MiddleClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.MiddleClick()双击鼠标中键
long MiddleDoubleClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.MiddleDoubleClick()按住鼠标中键
long MiddleDown()返回值
类型:int
- 0:失败
- 1:成功
示例
op.MiddleDown()弹起鼠标中键
long MiddleUp()返回值
类型:int
- 0:失败
- 1:成功
示例
op.MiddleUp()按下鼠标右键
long RightClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.RightClick()双击鼠标右键
long RightDoubleClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.RightDoubleClick()按住鼠标右键
long RightDown()返回值
类型:int
- 0:失败
- 1:成功
示例
op.RightDown()弹起鼠标右键
long RightUp()返回值
类型:int
- 0:失败
- 1:成功
示例
op.RightUp()按下鼠标侧键 1
long XButton1Click()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton1Click()双击鼠标侧键 1
long XButton1DoubleClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton1DoubleClick()按住鼠标侧键 1
long XButton1Down()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton1Down()弹起鼠标侧键 1
long XButton1Up()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton1Up()按下鼠标侧键 2
long XButton2Click()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton2Click()双击鼠标侧键 2
long XButton2DoubleClick()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton2DoubleClick()按住鼠标侧键 2
long XButton2Down()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton2Down()弹起鼠标侧键 2
long XButton2Up()返回值
类型:int
- 0:失败
- 1:成功
示例
op.XButton2Up()垂直滚轮滚动指定距离
long Wheel(delta)| 参数 | 类型 | 描述 |
|---|---|---|
| delta | int | 滚动距离。正数向上,负数向下,120 为一格滚轮 |
返回值
类型:int
- 0:失败
- 1:成功
示例
op.Wheel(120)
op.Wheel(-120)水平滚轮滚动指定距离
long HWheel(delta)| 参数 | 类型 | 描述 |
|---|---|---|
| delta | int | 滚动距离。正数向右,负数向左,120 为一格滚轮距离 |
返回值
类型:int
- 0:失败
- 1:成功
示例
op.HWheel(120)
op.HWheel(-120)滚轮向下滚
long WheelDown()返回值
类型:int
- 0:失败
- 1:成功
示例
op.WheelDown()滚轮向上滚
long WheelUp()返回值
类型:int
- 0:失败
- 1:成功
示例
op.WheelUp()获取当前鼠标形状特征
string GetCursorShape()返回值
类型:string
返回当前鼠标形状的特征字符串,获取失败返回空字符串
示例
shape = op.GetCursorShape()该函数旨在设置鼠标单击或双击时,鼠标按下和弹起之间的时间间隔。
long SetMouseDelay(type,delay)| 参数 | 类型 | 描述 |
|---|---|---|
| type | string | 鼠标类型,取值: "normal" | "windows" | "dx" |
| delay | int | 指定鼠标按下和弹起之间的时间间隔,单位通常为毫秒(milliseconds) |
当取值为"normal",默认为: 30ms
当取值为"windows",默认为: 10ms
当取值为"dx",默认为: 40ms
返回值
类型:int
- 0:失败
- 1:成功
示例
op.SetMouseDelay("dx",1000)