.成员 横向坐标, 整數型
.成员 纵向坐标, 整数型
.数据类型 按键记录, , 记录长度13个字节.
.成员 时间间隔, 整数型
.成员 键值, 字节型, , , 0鼠标移动;其他为键盘键值
.成员 键盘动莋, 整数型, , , 或者是 鼠标水平位置
.成员 垂直位置, 整数型, , , 鼠标垂直位置
.程序集 程序集_主窗口
.程序集变量 时间线, 整数型
.程序集变量 鼠标前次位置, 鼠標位置
.程序集变量 缓冲区记录数, 文本型
.程序集变量 当前记录, 整数型
.程序集变量 可否中断, 逻辑型
.程序集变量 屏幕宽度, 整数型
.程序集变量 屏幕高度, 整数型
.程序集变量 停止回放, 逻辑型
.参数 键值, 字节型
.参数 当前状态, 整数型
.判断开始 (当前状态 = 0)
按键状态 [键值 + 1] = 当前状态
.参数 键值, 字节型, , 为0表示鼠标移动,其他表示按键
.参数 键盘动作, 整数型, , 或 “水平位置”传入的双精度数
.参数 垂直位置, 整数型
当前记录 = 当前记录 + 1
.如果 (當前记录 > 取数组成员数 (操作记录))
信息框 (“缓冲区已满,录制被迫中止”, #错误图标, “录制出错”)
操作记录 [当前记录].时间间隔 = 取启动时間 () - 时间线
操作记录 [当前记录].键值 = 键值
操作记录 [当前记录].键盘动作 = 键盘动作
操作记录 [当前记录].垂直位置 = 垂直位置
标签_录制进程.标题 = 到文本 (当前记录) + “ / ” + 缓冲区记录数
.子程序 _按钮_记录_被单击
.局部变量 键值, 整数型
.局部变量 鼠标当前位置, 鼠标位置
.局部变量 鼠标动作, 整數型
.局部变量 脚本文件号, 整数型
.局部变量 记录数, 整数型
.局部变量 脚本文件名, 文本型
按钮_记录.禁止 = 真
按钮_回放.禁止 = 真
按钮_停止.禁止 = 假
.洳果真 (选择框_最小化.选中)
时钟_热键.时钟周期 = 0 ' 关闭 “记录” 热键
.计次循环首 (256, 键值) ' 初始化按键状态
取按键状态 (键值 - 1)
按键状态 [键值] = 0
屏幕宽喥 = 取屏幕宽度 () ' 为获取鼠标坐标作准备
屏幕高度 = 取屏幕高度 ()
时间线 = 取启动时间 ()
可否中断 = 假 ' 开始记录
.判断循环首 (可否中断 = 假)
取鼠标位置 (鼠标当前位置)
.如果真 (鼠标前次位置.横向坐标 ≠ 鼠标当前位置.横向坐标 或 鼠标前次位置.纵向坐标 ≠ 鼠标当前位置.纵向坐标)
鼠标前次位置 = 鼠标当前位置
添加记录 (0, 鼠标当前位置.横向坐标 × 65535 \ 屏幕宽度, 鼠标当前位置.纵向坐标 × 65535 \ 屏幕高度)
.变量循环首 (146, 255, 1, 键值) ' 先检查额外按键信息。OEM掃描码 处理扩展键 信息
判断按键 (键值, 取按键状态 (键值))
判断按键 (键值, 取按键状态 (键值))
.判断开始 (当前记录 > 4)
脚本文件名 = 到文本 (取现行时间 ())
寫出数据 (脚本文件号, 操作记录 [记录数].时间间隔, 操作记录 [记录数].键值, 操作记录 [记录数].键盘动作, 操作记录 [记录数].垂直位置)
关闭文件 (脚本文件号)
時钟_热键.时钟周期 = 100 ' 打开 “记录”热键
按钮_记录.禁止 = 假
按钮_停止.禁止 = 真
.子程序 _按钮_停止_被单击
.局部变量 脚本文件名, 文本型
按钮_回放.禁圵 = 真
按钮_删除.禁止 = 真
列表框_脚本.清空 ()
.判断循环首 (脚本文件名 ≠ “”)
列表框_脚本.加入项目 (脚本文件名, )
脚本文件名 = 寻找文件 (, )
列表框_脚本.現行选中项 = 列表框_脚本.取项目数 () - 1
_列表框_脚本_列表项被选择 ()
.参数 脚本文件名, 文本型
.局部变量 脚本文件号, 整数型
脚本文件号 = 打开文件 (脚夲文件名, #读入, #禁止写)
.判断循环首 (是否在文件尾 (脚本文件号, ) = 假)
当前记录 = 当前记录 + 1
读入数据 (脚本文件号, 操作记录 [当前记录].时间间隔, 操作記录 [当前记录].键值, 操作记录 [当前记录].键盘动作, 操作记录 [当前记录].垂直位置)
关闭文件 (脚本文件号)
按钮_回放.禁止 = 假
.参数 脚本文件名, 文本型
.局蔀变量 记录数, 整数型
.局部变量 执行次数, 整数型
.局部变量 回放间隔时间, 整数型
读取脚本 (脚本文件名)
.如果真 (选择框_回放.选中 = 真)
按钮_回放.禁止 = 真
按钮_记录.禁止 = 真
回放间隔时间 = 到数值 (编辑框_间隔时间.内容)
.计次循环首 (到数值 (编辑框_回放次数.内容), 执行次数)
标签_当前次数.标题 = 到攵本 (执行次数) + “ / ” + 编辑框_回放次数.内容
时间线 = 取启动时间 ()
.计次循环首 (当前记录, 记录数)
.判断循环首 (取启动时间 () ≥ 时间线 且 取启动时间 () - 时间线 ≤ 操作记录 [记录数].时间间隔) ' 解决 取启动时间() 往复的问题
.判断开始 (操作记录 [记录数].键值 = 0) ' 鼠标移动
模拟鼠标按键 (位或 (#鼠标移动, #絕对坐标), 操作记录 [记录数].键盘动作, 操作记录 [记录数].垂直位置, 0, 0)
.判断 (操作记录 [记录数].键值 = 1) ' 鼠标左键
.如果 (操作记录 [记录数].键盘动作 = #键按下)
.判斷 (操作记录 [记录数].键值 = 2) ' 鼠标右键
.如果 (操作记录 [记录数].键盘动作 = #键按下)
.判断 (操作记录 [记录数].键值 = 4) ' 鼠标中键
.如果 (操作记录 [记录数].键盘动莋 = #键按下)
.判断 (操作记录 [记录数].键值 > 4) ' 键盘键
模拟键盘按键 (操作记录 [记录数].键值, 0, 操作记录 [记录数].键盘动作, 0)
标签_录制进程.标题 = 到文本 (记录數) + “ / ” + 缓冲区记录数
.如果真 (停止回放)
.如果真 (停止回放)
.判断开始 (到数值 (编辑框_回放次数.内容) > 1)
标签_当前次数.标题 = “执行完毕”
按钮_回放.禁止 = 假
按钮_记录.禁止 = 假
.子程序 __启动窗口_创建完毕
.局部变量 键值, 整数型
.局部变量 脚本文本, 文本型
缓冲区记录数 = 到文本 (取数组成员数 (操作记录))
时钟_热键.时钟周期 = 100
.判断开始 (取数组成员数 (命令行) = 1)
.判断开始 (文件是否存在 (脚本文本))
脚本_回放 (脚本文本)
.子程序 加密机器码, 文本型
.參数 机器码, 文本型
.局部变量 字符位置, 整数型
.局部变量 加密后文本, 文本型
.局部变量 二次加密文本, 文本型
.变量循环首 (取文本长度 (机器码), 1, -1, 字符位置)
加密后文本 = 加密后文本 + 字符 (到数值 (取文本中间 (机器码, 字符位置, 1)) + 取代码 (“p”, ))
.计次循环首 (取文本长度 (机器码), 字符位置)
二次加密文本 = ②次加密文本 + 字符 (取代码 (加密后文本, 字符位置) - 到数值 (取文本中间 (机器码, 字符位置, 1)))
返回 (二次加密文本)
.子程序 _时钟_热键_周期事件
_按钮_记录_被单击 ()
.子程序 _列表框_脚本_列表项被选择
按钮_回放.禁止 = 假
按钮_删除.禁止 = 假
.子程序 _按钮_删除_被单击
删除文件 (取运行目录 () + “\scripts\” + 列表框_脚夲.取项目文本 (列表框_脚本.现行选中项))
.子程序 __启动窗口_将被销毁
.子程序 _调节器_间隔时间_调节钮被按下
.参数 按钮值, 整数型
编辑框_间隔时间.内容 = 到文本 (到数值 (编辑框_间隔时间.内容) + 1)
.如果真 (到数值 (编辑框_间隔时间.内容) > 0)
编辑框_间隔时间.内容 = 到文本 (到数值 (编辑框_间隔时间.内容) - 1)
.子程序 _调节器_回放次数_调节钮被按下
.参数 按钮值, 整数型
编辑框_回放次数.内容 = 到文本 (到数值 (编辑框_回放次数.内容) + 1)
.如果真 (到数值 (编辑框_回放佽数.内容) > 1)
编辑框_回放次数.内容 = 到文本 (到数值 (编辑框_回放次数.内容) - 1)
.子程序 _按钮_回放_被单击
脚本_回放 (取运行目录 () + “\scripts\” + 列表框_脚本.取項目文本 (列表框_脚本.现行选中项))
.子程序 _列表框_脚本_双击选择
.子程序 _列表框_脚本_鼠标右键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整數型
.参数 功能键状态, 整数型
.子程序 _重命名_被选择
.局部变量 脚本目录, 文本型
.局部变量 新文件名, 文本型
.判断开始 (输入框 (“请输入新脚本名称:”, “重命名脚本名称”, 列表框_脚本.取项目文本 (列表框_脚本.现行选中项), 新文件名, 1, _启动窗口))
新文件名 = 新文件名 + “.mrc”
.判断开始 (文件更名 (脚本目錄 + 列表框_脚本.取项目文本 (列表框_脚本.现行选中项), 脚本目录 + 新文件名))
列表框_脚本.置项目文本 (列表框_脚本.现行选中项, 新文件名)