服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - 易语言 - 易语言仿按键精灵录制键盘鼠标操作的代码

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

2022-02-16 17:07易语言源码教程 易语言

今天小编就为大家分享一篇关于易语言仿按键精灵录制键盘鼠标操作的代码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

DLL命令表

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
.版本 2
.DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState"
  .参数 鼠标键, 整数型
.DLL命令 取鼠标位置, 整数型, "user32.dll", "GetCursorPos"
  .参数 当前鼠标位置, 鼠标位置, 传址
.DLL命令 模拟鼠标按键, , , "mouse_event"
  .参数 鼠标动作, 整数型
  .参数 水平位置, 整数型
  .参数 垂直位置, 整数型
  .参数 鼠标按键, 整数型
  .参数 扩展信息, 整数型
.DLL命令 模拟键盘按键, , , "keybd_event"
  .参数 bVk, 字节型
  .参数 bScan, 字节型
  .参数 dwFlags, 整数型
  .参数 dwExtraInfo, 整数型

自定义数据类型

?
1
2
3
4
5
6
7
8
9
.版本 2
.数据类型 鼠标位置
  .成员 横向坐标, 整数型
  .成员 纵向坐标, 整数型
.数据类型 按键记录, , 记录长度13个字节.
  .成员 时间间隔, 整数型
  .成员 键值, 字节型, , , 0,鼠标移动;其他为键盘键值
  .成员 键盘动作, 整数型, , , 或者是 鼠标水平位置
  .成员 垂直位置, 整数型, , , 鼠标垂直位置

鼠标键盘录制的代码

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
.版本 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”
  .默认
  .判断结束
  .判断开始 (文件更名 (脚本目录 + 列表框_脚本.取项目文本 (列表框_脚本.现行选中项), 脚本目录 + 新文件名))
    列表框_脚本.置项目文本 (列表框_脚本.现行选中项, 新文件名)
  .默认
  .判断结束
.默认
.判断结束

运行结果:

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接

延伸 · 阅读

精彩推荐