YStudio Y++

鼠标支持库

Y++ / YStudio 开发文档 · 一点滴

路径:支持库 → 鼠标支持库。

硬约束

  1. 扁平命令;屏幕坐标:左上原点,像素。窗口句柄省略/0=前台窗口。
  2. 滚轮通常 ±120 一格(正上负下)。
  3. 轨迹/等待按键掩码:1左 · 2右 · 4中 · 8侧1 · 16侧2(可相加)。
  4. 矩形为半开 [左,右)×[顶,底)。
  5. 与控件鼠标事件不同:本库是全局操作命令;SendInput 可能被高权限窗拦截。
  6. 限制鼠标区域 / 俘获鼠标 结束后务必解除/释放。

快速开始

平滑移动鼠标(800, 400, 400)
模拟鼠标左键单击()
模拟鼠标滚轮(-120)
鼠标左键单击位置(400, 300)
移动鼠标到窗口中心()

鼠标操作

本分类共 41 条。

俘获鼠标

  • 签名:逻辑 俘获鼠标()
  • 说明:俘获鼠标输入到当前窗口(SetCapture)。拖出控件仍可收到移动/抬起。结束时务必 释放鼠标。

取鼠标双击间隔

  • 签名:整数 取鼠标双击间隔()
  • 说明:取得系统双击时间间隔(毫秒)。

取鼠标垂直位置

  • 签名:整数 取鼠标垂直位置()
  • 说明:取得当前鼠标指针的屏幕 Y 坐标。

取鼠标水平位置

  • 签名:整数 取鼠标水平位置()
  • 说明:取得当前鼠标指针的屏幕 X 坐标。

平滑拖拽到

  • 签名:逻辑 平滑拖拽到(整数 X, 整数 Y, 整数 时长毫秒)
  • 说明:左键按下后平滑移动到目标再放开。
  • 参数一│X
  • 参数二│Y
  • 参数三│时长毫秒

平滑移动鼠标

  • 签名:逻辑 平滑移动鼠标(整数 X, 整数 Y, 整数 时长毫秒)
  • 说明:在指定毫秒内平滑移动到目标(缓动)。时长≤0 时等同 移动鼠标。
  • 参数一│X
  • 参数二│Y
  • 参数三│时长毫秒

显示鼠标光标

  • 签名:逻辑 显示鼠标光标()
  • 说明:显示系统鼠标光标。

曲线移动鼠标

  • 签名:逻辑 曲线移动鼠标(整数 X, 整数 Y, 整数 时长毫秒, 整数 弯曲度)
  • 说明:沿二次贝塞尔曲线移动。弯曲度为控制点垂直偏移像素,正负决定弯曲方向。
  • 参数一│X
  • 参数二│Y
  • 参数三│时长毫秒
  • 参数四│弯曲度: 像素,常用 ±50~±200

模拟鼠标中键单击

  • 签名:逻辑 模拟鼠标中键单击()
  • 说明:在当前鼠标位置模拟一次中键单击。

模拟鼠标中键按下

  • 签名:逻辑 模拟鼠标中键按下()
  • 说明:模拟中键按下。

模拟鼠标中键放开

  • 签名:逻辑 模拟鼠标中键放开()
  • 说明:模拟中键放开。

模拟鼠标侧键1单击

  • 签名:逻辑 模拟鼠标侧键1单击()
  • 说明:模拟鼠标前进侧键(XButton1)单击。

模拟鼠标侧键2单击

  • 签名:逻辑 模拟鼠标侧键2单击()
  • 说明:模拟鼠标后退侧键(XButton2)单击。

模拟鼠标右键单击

  • 签名:逻辑 模拟鼠标右键单击()
  • 说明:在当前鼠标位置模拟一次右键单击。

模拟鼠标右键按下

  • 签名:逻辑 模拟鼠标右键按下()
  • 说明:模拟右键按下。

模拟鼠标右键放开

  • 签名:逻辑 模拟鼠标右键放开()
  • 说明:模拟右键放开。

模拟鼠标左键单击

  • 签名:逻辑 模拟鼠标左键单击()
  • 说明:在当前鼠标位置模拟一次左键单击。

模拟鼠标左键双击

  • 签名:逻辑 模拟鼠标左键双击()
  • 说明:在当前鼠标位置模拟左键双击。

模拟鼠标左键按下

  • 签名:逻辑 模拟鼠标左键按下()
  • 说明:模拟左键按下(不放开)。

模拟鼠标左键放开

  • 签名:逻辑 模拟鼠标左键放开()
  • 说明:模拟左键放开。

模拟鼠标水平滚轮

  • 签名:逻辑 模拟鼠标水平滚轮(整数 滚动量)
  • 说明:模拟水平滚轮。正向右、负向左。
  • 参数一│滚动量

模拟鼠标滚轮

  • 签名:逻辑 模拟鼠标滚轮(整数 滚动量)
  • 说明:模拟滚轮。正上负下;通常 120 为一格。
  • 参数一│滚动量

模拟鼠标滚轮到位置

  • 签名:逻辑 模拟鼠标滚轮到位置(整数 X, 整数 Y, 整数 滚动量)
  • 说明:移动到坐标后模拟滚轮。
  • 参数一│X
  • 参数二│Y
  • 参数三│滚动量

相对移动鼠标

  • 签名:逻辑 相对移动鼠标(整数 水平偏移, 整数 垂直偏移)
  • 说明:相对当前位置偏移鼠标。成功返回真。
  • 参数一│水平偏移: 向右为正
  • 参数二│垂直偏移: 向下为正

移动鼠标

  • 签名:逻辑 移动鼠标(整数 X, 整数 Y)
  • 说明:将鼠标指针移动到屏幕坐标 (X, Y)。成功返回真。
  • 参数一│X: 屏幕横坐标
  • 参数二│Y: 屏幕纵坐标

解除鼠标区域限制

  • 签名:逻辑 解除鼠标区域限制()
  • 说明:取消指针裁剪。

释放鼠标

  • 签名:逻辑 释放鼠标()
  • 说明:释放此前的鼠标俘获(ReleaseCapture)。

限制鼠标区域

  • 签名:逻辑 限制鼠标区域(整数 左边, 整数 顶边, 整数 右边, 整数 底边)
  • 说明:将指针限制在矩形内。退出前请 解除鼠标区域限制。
  • 参数一│左边
  • 参数二│顶边
  • 参数三│右边
  • 参数四│底边

隐藏鼠标光标

  • 签名:逻辑 隐藏鼠标光标()
  • 说明:隐藏系统鼠标光标。

鼠标中键是否按下

  • 签名:逻辑 鼠标中键是否按下()
  • 说明:判断物理中键是否按下。

鼠标侧键1是否按下

  • 签名:逻辑 鼠标侧键1是否按下()
  • 说明:判断侧键1是否按下。

鼠标侧键2是否按下

  • 签名:逻辑 鼠标侧键2是否按下()
  • 说明:判断侧键2是否按下。

鼠标右键单击位置

  • 签名:逻辑 鼠标右键单击位置(整数 X, 整数 Y)
  • 说明:移动到屏幕坐标并右键单击。
  • 参数一│X
  • 参数二│Y

鼠标右键是否按下

  • 签名:逻辑 鼠标右键是否按下()
  • 说明:判断物理右键是否按下。

鼠标左键单击位置

  • 签名:逻辑 鼠标左键单击位置(整数 X, 整数 Y)
  • 说明:移动到 (X,Y) 并左键单击。
  • 参数一│X
  • 参数二│Y

鼠标左键双击位置

  • 签名:逻辑 鼠标左键双击位置(整数 X, 整数 Y)
  • 说明:移动到屏幕坐标并左键双击。
  • 参数一│X
  • 参数二│Y

鼠标左键是否按下

  • 签名:逻辑 鼠标左键是否按下()
  • 说明:判断物理左键是否按下。

鼠标左键长按

  • 签名:逻辑 鼠标左键长按(整数 按住毫秒)
  • 说明:在当前位置左键按下并保持指定毫秒后放开。
  • 参数一│按住毫秒

鼠标拖拽到

  • 签名:逻辑 鼠标拖拽到(整数 X, 整数 Y)
  • 说明:左键按下后瞬时移动到 (X,Y) 再放开。
  • 参数一│X
  • 参数二│Y

鼠标是否在矩形内

  • 签名:逻辑 鼠标是否在矩形内(整数 左边, 整数 顶边, 整数 右边, 整数 底边)
  • 说明:判断指针是否在半开矩形 [左,右)×[顶,底) 内。
  • 参数一│左边
  • 参数二│顶边
  • 参数三│右边
  • 参数四│底边

鼠标是否已俘获

  • 签名:逻辑 鼠标是否已俘获()
  • 说明:判断当前是否存在鼠标俘获。

窗口坐标

本分类共 9 条。

取鼠标窗口垂直位置

  • 签名:整数 取鼠标窗口垂直位置([整数 窗口句柄=0])
  • 说明:取得指针相对窗口客户区的 Y。
  • 参数一│窗口句柄: 可选,默认 0=前台

取鼠标窗口水平位置

  • 签名:整数 取鼠标窗口水平位置([整数 窗口句柄=0])
  • 说明:取得指针相对窗口客户区的 X。句柄省略或 0=前台窗口。
  • 参数一│窗口句柄: 可选,默认 0=前台

客户区转屏幕X

  • 签名:整数 客户区转屏幕X(整数 客户区X, 整数 客户区Y, [整数 窗口句柄=0])
  • 说明:客户区坐标转屏幕 X。
  • 参数一│客户区X
  • 参数二│客户区Y
  • 参数三│窗口句柄: 可选

客户区转屏幕Y

  • 签名:整数 客户区转屏幕Y(整数 客户区X, 整数 客户区Y, [整数 窗口句柄=0])
  • 说明:客户区坐标转屏幕 Y。
  • 参数一│客户区X
  • 参数二│客户区Y
  • 参数三│窗口句柄: 可选

屏幕转客户区X

  • 签名:整数 屏幕转客户区X(整数 屏幕X, 整数 屏幕Y, [整数 窗口句柄=0])
  • 说明:屏幕坐标转客户区 X。
  • 参数一│屏幕X
  • 参数二│屏幕Y
  • 参数三│窗口句柄: 可选

屏幕转客户区Y

  • 签名:整数 屏幕转客户区Y(整数 屏幕X, 整数 屏幕Y, [整数 窗口句柄=0])
  • 说明:屏幕坐标转客户区 Y。
  • 参数一│屏幕X
  • 参数二│屏幕Y
  • 参数三│窗口句柄: 可选

移动鼠标到窗口中心

  • 签名:逻辑 移动鼠标到窗口中心([整数 窗口句柄=0])
  • 说明:将指针移到窗口客户区中心。
  • 参数一│窗口句柄: 可选,默认 0=前台

移动鼠标到窗口坐标

  • 签名:逻辑 移动鼠标到窗口坐标(整数 客户区X, 整数 客户区Y, [整数 窗口句柄=0])
  • 说明:按窗口客户区坐标移动指针。
  • 参数一│客户区X
  • 参数二│客户区Y
  • 参数三│窗口句柄: 可选,默认 0=前台

鼠标单击窗口坐标

  • 签名:逻辑 鼠标单击窗口坐标(整数 客户区X, 整数 客户区Y, [整数 窗口句柄=0])
  • 说明:移动到窗口客户区坐标并左键单击。
  • 参数一│客户区X
  • 参数二│客户区Y
  • 参数三│窗口句柄: 可选

鼠标等待

本分类共 4 条。

等待鼠标按键

  • 签名:逻辑 等待鼠标按键(整数 按键掩码, 逻辑 等待按下, 整数 超时毫秒)
  • 说明:等到指定按键状态。掩码:1左 2右 4中 8侧1 16侧2。超时≤0 一直等。
  • 参数一│按键掩码
  • 参数二│等待按下: 真=等到按下,假=等到放开
  • 参数三│超时毫秒: ≤0 一直等

等待鼠标离开矩形

  • 签名:逻辑 等待鼠标离开矩形(整数 左边, 整数 顶边, 整数 右边, 整数 底边, 整数 超时毫秒)
  • 说明:等到指针离开半开矩形。
  • 参数一│左边
  • 参数二│顶边
  • 参数三│右边
  • 参数四│底边
  • 参数五│超时毫秒

等待鼠标移动

  • 签名:逻辑 等待鼠标移动(整数 超时毫秒)
  • 说明:等到指针相对调用时位置发生移动。
  • 参数一│超时毫秒: ≤0 一直等

等待鼠标进入矩形

  • 签名:逻辑 等待鼠标进入矩形(整数 左边, 整数 顶边, 整数 右边, 整数 底边, 整数 超时毫秒)
  • 说明:等到指针进入半开矩形。超时≤0 一直等。
  • 参数一│左边
  • 参数二│顶边
  • 参数三│右边
  • 参数四│底边
  • 参数五│超时毫秒

鼠标系统

本分类共 7 条。

取虚拟屏幕宽度

  • 签名:整数 取虚拟屏幕宽度()
  • 说明:多显示器虚拟桌面总宽度。

取虚拟屏幕左边

  • 签名:整数 取虚拟屏幕左边()
  • 说明:多显示器虚拟桌面左边界(可为负)。

取虚拟屏幕顶边

  • 签名:整数 取虚拟屏幕顶边()
  • 说明:多显示器虚拟桌面顶边界(可为负)。

取虚拟屏幕高度

  • 签名:整数 取虚拟屏幕高度()
  • 说明:多显示器虚拟桌面总高度。

取鼠标移动速度

  • 签名:整数 取鼠标移动速度()
  • 说明:取得系统鼠标速度(1~20,默认约 10)。

置鼠标移动速度

  • 签名:逻辑 置鼠标移动速度(整数 速度)
  • 说明:设置系统鼠标速度(1~20)。影响用户鼠标手感,慎用。
  • 参数一│速度: 1~20

鼠标左右键是否交换

  • 签名:逻辑 鼠标左右键是否交换()
  • 说明:判断系统是否开启了左右键交换。

鼠标轨迹

本分类共 22 条。

保存鼠标轨迹

  • 签名:逻辑 保存鼠标轨迹(文本 文件路径)
  • 说明:将轨迹保存为文本文件(YPLMPATH1 格式)。
  • 参数一│文件路径

停止录制鼠标轨迹

  • 签名:逻辑 停止录制鼠标轨迹()
  • 说明:停止后台采样。

反转鼠标轨迹

  • 签名:逻辑 反转鼠标轨迹()
  • 说明:原地反转轨迹点顺序(首点延时清零)。

取鼠标轨迹总时长

  • 签名:整数 取鼠标轨迹总时长()
  • 说明:各点延时之和(毫秒)。

取鼠标轨迹最大点数

  • 签名:整数 取鼠标轨迹最大点数()
  • 说明:取得当前最大点数限制。

取鼠标轨迹点X

  • 签名:整数 取鼠标轨迹点X(整数 索引)
  • 说明:取第 索引 个点的 X(从 0 起)。越界返回 0。
  • 参数一│索引

取鼠标轨迹点Y

  • 签名:整数 取鼠标轨迹点Y(整数 索引)
  • 说明:取第 索引 个点的 Y(从 0 起)。
  • 参数一│索引

取鼠标轨迹点延时

  • 签名:整数 取鼠标轨迹点延时(整数 索引)
  • 说明:取相对上一点的延时毫秒。首点一般为 0。
  • 参数一│索引

取鼠标轨迹点按键

  • 签名:整数 取鼠标轨迹点按键(整数 索引)
  • 说明:取该点按键位标志:1左 2右 4中,可相加。
  • 参数一│索引

取鼠标轨迹点数

  • 签名:整数 取鼠标轨迹点数()
  • 说明:取得当前轨迹点数。

回放鼠标轨迹

  • 签名:逻辑 回放鼠标轨迹(整数 速度百分比)
  • 说明:按录制时序回放位置,并重放按键变化。100=原速,200=两倍速。
  • 参数一│速度百分比: ≤0 按 100

回放鼠标轨迹仅移动

  • 签名:逻辑 回放鼠标轨迹仅移动(整数 速度百分比)
  • 说明:只回放指针路径,不模拟按键。
  • 参数一│速度百分比

平移鼠标轨迹

  • 签名:逻辑 平移鼠标轨迹(整数 水平偏移, 整数 垂直偏移)
  • 说明:所有轨迹点加上偏移。
  • 参数一│水平偏移
  • 参数二│垂直偏移

开始录制鼠标轨迹

  • 签名:逻辑 开始录制鼠标轨迹(整数 采样间隔毫秒)
  • 说明:清空旧轨迹并开始后台采样(位置+按键)。建议间隔 8~20。
  • 参数一│采样间隔毫秒: ≤0 时按 10

循环回放鼠标轨迹

  • 签名:逻辑 循环回放鼠标轨迹(整数 速度百分比, 整数 次数)
  • 说明:带按键回放指定次数。次数≤0 按 1 次。
  • 参数一│速度百分比
  • 参数二│次数

截取鼠标轨迹

  • 签名:逻辑 截取鼠标轨迹(整数 起始索引, 整数 结束索引)
  • 说明:保留 [起始, 结束) 区间的点,结束为开区间。
  • 参数一│起始索引: 从 0 起
  • 参数二│结束索引: 不含该点,可等于点数

添加鼠标轨迹点

  • 签名:逻辑 添加鼠标轨迹点(整数 X, 整数 Y, 整数 延时毫秒, 整数 按键)
  • 说明:手动追加一个轨迹点。
  • 参数一│X
  • 参数二│Y
  • 参数三│延时毫秒
  • 参数四│按键: 1左 2右 4中,无按键填 0

清空鼠标轨迹

  • 签名:无 清空鼠标轨迹()
  • 说明:停止录制并清空内存中的轨迹点。

缩放鼠标轨迹

  • 签名:逻辑 缩放鼠标轨迹(整数 百分比)
  • 说明:以首点为原点按百分比缩放后续点。100=不变。
  • 参数一│百分比: >0,如 50=缩小一半,200=放大一倍

置鼠标轨迹最大点数

  • 签名:无 置鼠标轨迹最大点数(整数 最大点数)
  • 说明:限制录制/载入的最大点数(默认 100000,范围 100~2000000)。
  • 参数一│最大点数

载入鼠标轨迹

  • 签名:逻辑 载入鼠标轨迹(文本 文件路径)
  • 说明:从文件载入轨迹(替换内存中当前轨迹)。
  • 参数一│文件路径

鼠标轨迹是否正在录制

  • 签名:逻辑 鼠标轨迹是否正在录制()
  • 说明:判断是否正在录制。

易错对照

错误 正确
限制区域后忘记解除 成对调用解除限制
俘获后不释放 退出路径务必释放
与控件鼠标事件混淆 本库是全局注入

相关

键盘支持库 · 热键支持库 · 窗口操作