易语言仿按键精灵录制键盘鼠标操作的代码

DLL命令表

.版本 2

.DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState"

.参数 鼠标键, 整数型

.DLL命令 取鼠标位置, 整数型, "user32.dll", "GetCursorPos"

.参数 当前鼠标位置, 鼠标位置, 传址

.DLL命令 模拟鼠标按键, , , "mouse_event"

.参数 鼠标动作, 整数型

.参数 水平位置, 整数型

.参数 垂直位置, 整数型

.参数 鼠标按键, 整数型

.参数 扩展信息, 整数型

.DLL命令 模拟键盘按键, , , "keybd_event"

.参数 bVk, 字节型

.参数 bScan, 字节型

.参数 dwFlags, 整数型

.参数 dwExtraInfo, 整数型

自定义数据类型

.版本 2

.数据类型 鼠标位置

.成员 横向坐标, 整数型

.成员 纵向坐标, 整数型

.数据类型 按键记录, , 记录长度13个字节.

.成员 时间间隔, 整数型

.成员 键值, 字节型, , , 0,鼠标移动;其他为键盘键值

.成员 键盘动作, 整数型, , , 或者是 鼠标水平位置

.成员 垂直位置, 整数型, , , 鼠标垂直位置

鼠标键盘录制的代码

.版本 2

.程序集 程序集_主窗口

.程序集变量 按键状态, 整数型, , "256"

.程序集变量 时间线, 整数型

.程序集变量 鼠标前次位置, 鼠标位置

.程序集变量 操作记录, 按键记录, , "92000"

.程序集变量 缓冲区记录数, 文本型

.程序集变量 当前记录, 整数型

.程序集变量 可否中断, 逻辑型

.程序集变量 屏幕宽度, 整数型

.程序集变量 屏幕高度, 整数型

.程序集变量 停止回放, 逻辑型

.子程序 判断按键

.参数 键值, 字节型

.参数 当前状态, 整数型

.判断开始 (当前状态 = 0)

.如果真 (按键状态 [键值 + 1] ≠ 0)

添加记录 (键值, #键抬起, 0)

.如果真结束

.判断 (当前状态 ≠ 0)

.如果 (键值 = #F3键)

可否中断 = 真

返回 ()

.否则

.如果结束

.如果真 (按键状态 [键值 + 1] = 0)

添加记录 (键值, #键按下, 0)

.如果真结束

.默认

.判断结束

按键状态 [键值 + 1] = 当前状态

.子程序 添加记录

.参数 键值, 字节型, , 为0表示鼠标移动,其他表示按键

.参数 键盘动作, 整数型, , 或 “水平位置”,传入的双精度数

.参数 垂直位置, 整数型

当前记录 = 当前记录 + 1

.如果 (当前记录 > 取数组成员数 (操作记录))

可否中断 = 真

信息框 (“缓冲区已满,录制被迫中止。”, #错误图标, “录制出错”)

返回 ()

.否则

.如果结束

操作记录 [当前记录].时间间隔 = 取启动时间 () - 时间线

操作记录 [当前记录].键值 = 键值

操作记录 [当前记录].键盘动作 = 键盘动作

操作记录 [当前记录].垂直位置 = 垂直位置

标签_录制进程.标题 = 到文本 (当前记录) + “ / ” + 缓冲区记录数

.子程序 _按钮_记录_被单击

.局部变量 键值, 整数型

.局部变量 鼠标当前位置, 鼠标位置

.局部变量 鼠标动作, 整数型

.局部变量 脚本文件号, 整数型

.局部变量 记录数, 整数型

.局部变量 脚本文件名, 文本型

按钮_记录.禁止 = 真

按钮_回放.禁止 = 真

按钮_停止.禁止 = 假

.如果真 (选择框_最小化.选中)

位置 = 2

.如果真结束

时钟_热键.时钟周期 = 0 ' 关闭 “记录” 热键

.计次循环首 (256, 键值) ' 初始化按键状态

取按键状态 (键值 - 1)

按键状态 [键值] = 0

.计次循环尾 ()

屏幕宽度 = 取屏幕宽度 () ' 为获取鼠标坐标作准备

屏幕高度 = 取屏幕高度 ()

当前记录 = 0

时间线 = 取启动时间 ()

可否中断 = 假 ' 开始记录

.判断循环首 (可否中断 = 假)

取鼠标位置 (鼠标当前位置)

.如果真 (鼠标前次位置.横向坐标 ≠ 鼠标当前位置.横向坐标 或 鼠标前次位置.纵向坐标 ≠ 鼠标当前位置.纵向坐标)

鼠标前次位置 = 鼠标当前位置

添加记录 (0, 鼠标当前位置.横向坐标 × 65535 \ 屏幕宽度, 鼠标当前位置.纵向坐标 × 65535 \ 屏幕高度)

.如果真结束

.变量循环首 (146, 255, 1, 键值) ' 先检查额外按键信息。OEM扫描码 处理,扩展键 信息

判断按键 (键值, 取按键状态 (键值))

.变量循环尾 ()

.变量循环首 (0, 145, 1, 键值)

判断按键 (键值, 取按键状态 (键值))

.变量循环尾 ()

处理事件 ()

延时 (10) ' 取启动时间() 最少间隔是 15ms

.判断循环尾 ()

.判断开始 (当前记录 > 4)

脚本文件名 = 到文本 (取现行时间 ())

创建目录 (取运行目录 () + “\scripts”)

脚本文件号 = 打开文件 (取运行目录 () + “\scripts\” + 脚本文件名 + “.mrc”, #重写, #禁止写)

.变量循环首 (4, 当前记录, 1, 记录数)

写出数据 (脚本文件号, 操作记录 [记录数].时间间隔, 操作记录 [记录数].键值, 操作记录 [记录数].键盘动作, 操作记录 [记录数].垂直位置)

.变量循环尾 ()

关闭文件 (脚本文件号)

.默认

.判断结束

现存脚本 ()

时钟_热键.时钟周期 = 100 ' 打开 “记录”热键

按钮_记录.禁止 = 假

按钮_停止.禁止 = 真

位置 = 0

.子程序 _按钮_停止_被单击

可否中断 = 真

.子程序 现存脚本

.局部变量 脚本文件名, 文本型

按钮_回放.禁止 = 真

按钮_删除.禁止 = 真

列表框_脚本.清空 ()

脚本文件名 = 寻找文件 (取运行目录 () + “\scripts\*.mrc”, )

.判断循环首 (脚本文件名 ≠ “”)

列表框_脚本.加入项目 (脚本文件名, )

脚本文件名 = 寻找文件 (, )

.判断循环尾 ()

列表框_脚本.现行选中项 = 列表框_脚本.取项目数 () - 1

_列表框_脚本_列表项被选择 ()

.子程序 读取脚本

.参数 脚本文件名, 文本型

.局部变量 脚本文件号, 整数型

脚本文件号 = 打开文件 (脚本文件名, #读入, #禁止写)

当前记录 = 0

.判断循环首 (是否在文件尾 (脚本文件号, ) = 假)

当前记录 = 当前记录 + 1

读入数据 (脚本文件号, 操作记录 [当前记录].时间间隔, 操作记录 [当前记录].键值, 操作记录 [当前记录].键盘动作, 操作记录 [当前记录].垂直位置)

.判断循环尾 ()

关闭文件 (脚本文件号)

按钮_回放.禁止 = 假

.子程序 脚本_回放

.参数 脚本文件名, 文本型

.局部变量 记录数, 整数型

.局部变量 执行次数, 整数型

.局部变量 回放间隔时间, 整数型

读取脚本 (脚本文件名)

.如果真 (选择框_回放.选中 = 真)

位置 = 2

.如果真结束

按钮_回放.禁止 = 真

按钮_记录.禁止 = 真

停止回放 = 假

回放间隔时间 = 到数值 (编辑框_间隔时间.内容)

.计次循环首 (到数值 (编辑框_回放次数.内容), 执行次数)

标签_当前次数.标题 = 到文本 (执行次数) + “ / ” + 编辑框_回放次数.内容

时间线 = 取启动时间 ()

.计次循环首 (当前记录, 记录数)

.判断循环首 (取启动时间 () ≥ 时间线 且 取启动时间 () - 时间线 ≤ 操作记录 [记录数].时间间隔) ' 解决 取启动时间() 往复的问题

处理事件 ()

延时 (3) ' 1/3

.判断循环尾 ()

.判断开始 (操作记录 [记录数].键值 = 0) ' 鼠标移动

模拟鼠标按键 (位或 (#鼠标移动, #绝对坐标), 操作记录 [记录数].键盘动作, 操作记录 [记录数].垂直位置, 0, 0)

.判断 (操作记录 [记录数].键值 = 1) ' 鼠标左键

.如果 (操作记录 [记录数].键盘动作 = #键按下)

模拟鼠标按键 (#左键按下, 0, 0, 0, 0)

.否则

模拟鼠标按键 (#左键抬起, 0, 0, 0, 0)

.如果结束

.判断 (操作记录 [记录数].键值 = 2) ' 鼠标右键

.如果 (操作记录 [记录数].键盘动作 = #键按下)

模拟鼠标按键 (#右键按下, 0, 0, 0, 0)

.否则

模拟鼠标按键 (#右键抬起, 0, 0, 0, 0)

.如果结束

.判断 (操作记录 [记录数].键值 = 4) ' 鼠标中键

.如果 (操作记录 [记录数].键盘动作 = #键按下)

模拟鼠标按键 (#中键按下, 0, 0, 0, 0)

.否则

模拟鼠标按键 (#中键抬起, 0, 0, 0, 0)

.如果结束

.判断 (操作记录 [记录数].键值 > 4) ' 键盘键

模拟键盘按键 (操作记录 [记录数].键值, 0, 操作记录 [记录数].键盘动作, 0)

.默认

.判断结束

标签_录制进程.标题 = 到文本 (记录数) + “ / ” + 缓冲区记录数

处理事件 ()

.如果真 (停止回放)

跳出循环 ()

.如果真结束

.计次循环尾 ()

.如果真 (停止回放)

跳出循环 ()

.如果真结束

.判断开始 (到数值 (编辑框_回放次数.内容) > 1)

延时 (回放间隔时间 × 1000)

.默认

.判断结束

.计次循环尾 ()

标签_当前次数.标题 = “执行完毕”

按钮_回放.禁止 = 假

按钮_记录.禁止 = 假

位置 = 0

.子程序 __启动窗口_创建完毕

.局部变量 键值, 整数型

.局部变量 命令行, 文本型, , "0"

.局部变量 脚本文本, 文本型

缓冲区记录数 = 到文本 (取数组成员数 (操作记录))

取按键状态 (#F2键)

取按键状态 (#F3键)

取按键状态 (#F4键)

时钟_热键.时钟周期 = 100

现存脚本 ()

取命令行 (命令行)

.判断开始 (取数组成员数 (命令行) = 1)

脚本文本 = 取运行目录 () + “\scripts\” + 命令行 [1] + “.mrc”

.判断开始 (文件是否存在 (脚本文本))

脚本_回放 (脚本文本)

结束 ()

.默认

.判断结束

.默认

.判断结束

.子程序 加密机器码, 文本型

.参数 机器码, 文本型

.局部变量 字符位置, 整数型

.局部变量 加密后文本, 文本型

.局部变量 二次加密文本, 文本型

.变量循环首 (取文本长度 (机器码), 1, -1, 字符位置)

加密后文本 = 加密后文本 + 字符 (到数值 (取文本中间 (机器码, 字符位置, 1)) + 取代码 (“p”, ))

.变量循环尾 ()

.计次循环首 (取文本长度 (机器码), 字符位置)

二次加密文本 = 二次加密文本 + 字符 (取代码 (加密后文本, 字符位置) - 到数值 (取文本中间 (机器码, 字符位置, 1)))

.计次循环尾 ()

返回 (二次加密文本)

.子程序 _时钟_热键_周期事件

.如果 (取按键状态 (#F2键) ≠ 0)

_按钮_记录_被单击 ()

.否则

.如果结束

.如果 (取按键状态 (#F4键) ≠ 0)

停止回放 = 真

.否则

.如果结束

.子程序 _列表框_脚本_列表项被选择

按钮_回放.禁止 = 假

按钮_删除.禁止 = 假

.子程序 _按钮_删除_被单击

删除文件 (取运行目录 () + “\scripts\” + 列表框_脚本.取项目文本 (列表框_脚本.现行选中项))

现存脚本 ()

.子程序 __启动窗口_将被销毁

结束 ()

.子程序 _调节器_间隔时间_调节钮被按下

.参数 按钮值, 整数型

.如果 (按钮值 = 1)

编辑框_间隔时间.内容 = 到文本 (到数值 (编辑框_间隔时间.内容) + 1)

.否则

.如果真 (到数值 (编辑框_间隔时间.内容) > 0)

编辑框_间隔时间.内容 = 到文本 (到数值 (编辑框_间隔时间.内容) - 1)

.如果真结束

.如果结束

.子程序 _调节器_回放次数_调节钮被按下

.参数 按钮值, 整数型

.如果 (按钮值 = 1)

编辑框_回放次数.内容 = 到文本 (到数值 (编辑框_回放次数.内容) + 1)

.否则

.如果真 (到数值 (编辑框_回放次数.内容) > 1)

编辑框_回放次数.内容 = 到文本 (到数值 (编辑框_回放次数.内容) - 1)

.如果真结束

.如果结束

.子程序 _按钮_回放_被单击

脚本_回放 (取运行目录 () + “\scripts\” + 列表框_脚本.取项目文本 (列表框_脚本.现行选中项))

.子程序 _列表框_脚本_双击选择

载入 (窗口1, , 真)

.子程序 _列表框_脚本_鼠标右键被放开, 逻辑型

.参数 横向位置, 整数型

.参数 纵向位置, 整数型

.参数 功能键状态, 整数型

弹出菜单 (Z, , )

.子程序 _重命名_被选择

.局部变量 脚本目录, 文本型

.局部变量 新文件名, 文本型

.判断开始 (输入框 (“请输入新脚本名称:”, “重命名脚本名称”, 列表框_脚本.取项目文本 (列表框_脚本.现行选中项), 新文件名, 1, _启动窗口))

脚本目录 = 取运行目录 () + “\scripts\”

.判断开始 (取文本右边 (新文件名, 4) ≠ “.mrc”)

新文件名 = 新文件名 + “.mrc”

.默认

.判断结束

.判断开始 (文件更名 (脚本目录 + 列表框_脚本.取项目文本 (列表框_脚本.现行选中项), 脚本目录 + 新文件名))

列表框_脚本.置项目文本 (列表框_脚本.现行选中项, 新文件名)

.默认

.判断结束

.默认

.判断结束

运行结果:

总结

以上是 易语言仿按键精灵录制键盘鼠标操作的代码 的全部内容, 来源链接: utcz.com/z/352021.html

回到顶部