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

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

服务器之家 - 编程语言 - 易语言 - 易语言通过注册表将易文件关联修复的源码

易语言通过注册表将易文件关联修复的源码

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

今天小编就为大家分享一篇关于易语言通过注册表将易文件关联修复的源码,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

DLL命令表

?
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
.版本 2
.DLL命令 API_SendMessage, 整数型, "user32", "SendMessageA"
 .参数 窗口句柄, 整数型
 .参数 消息值, 整数型
 .参数 参数一, 整数型
 .参数 参数二, 整数型
.DLL命令 API_SendMessageTimeout, 整数型, "user32", "SendMessageTimeoutA", , ,
 .参数 hWnd, 整数型, , 要接收消息的一个窗口的句柄
 .参数 Msg, 整数型, , 消息的标识符
 .参数 wParam, 整数型, , 由消息决定
 .参数 lParam, 整数型, , 由消息决定
 .参数 fuFlags, 整数型, , 下述常数的一个或多个;SMTO_ABORTIFHUNG:如目标进程挂起,则函数立即返回;SMTO_BLOCK:除非函数返回,否则调用线程不能处理消息;SMTO_NORMAL:允许调用线程处理消息,同时保持函数继续执行
 .参数 uTimeout, 整数型, , 超时值,采用毫秒为单位
 .参数 lpdwResult, 整数型, 传址, 用于装载函数结果的一个变量;
.DLL命令 注册表_RegDeleteKeyA, 整数型, "advapi32.dll", "RegDeleteKeyA", 公开, _注册表_删除项删除现有项下方一个指定的子项 零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
 .参数 hKey, 整数型, , 一个已打开项的句柄,或者标准项名之一
 .参数 lpSubKey, 文本型, , 要删除项的名字。这个项的所有子项也会删除;
.DLL命令 注册表_RegCloseKey, 整数型, , "RegCloseKey", 公开, _注册表_关闭项 advapi32.dll关闭系统注册表中的一个项(或键) 零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
 .参数 hKey, 整数型, , 要关闭的项;
.DLL命令 注册表_RegCreateKeyA, 整数型, , "RegCreateKeyA", 公开, _注册表_创建项 advapi32.dll在指定的项下创建一个新项。如指定的项已经存在,那么函数会打开现有的项 零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
 .参数 hKey, 整数型, , 要打开项的句柄,或者一个标准项名
 .参数 lpSubKey, 文本型, , 欲创建的新子项。可同时创建多个项,只需用反斜杠将它们分隔开即可。例如level1\level2\newkey
 .参数 phkResult, 整数型, 传址, 指定一个变量,用于装载新子项的句柄;
.DLL命令 注册表_RegOpenKeyA, 整数型, "advapi32.dll", "RegOpenKeyA", 公开, _注册表_打开项 打开一个现有的注册表项 零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
 .参数 hKey, 整数型, , 一个已打开项的句柄,或指定一个标准项名
 .参数 lpSubKey, 文本型, , 要打开的项名
 .参数 phkResult, 整数型, 传址, 指定一个变量,用于装载(保存)打开注册表项的一个句柄;
.DLL命令 注册表_RegEnumKeyA, 整数型, "advapi32.dll", "RegEnumKeyA", 公开, _注册表_枚举子项
 .参数 hKey, 整数型
 .参数 dwIndex, 整数型
 .参数 lpName, 文本型, 传址
 .参数 cbName, 整数型
.DLL命令 注册表_RegQueryValueExA, 整数型, "advapi32.dll", "RegQueryValueExA", 公开, _注册表_取值获取一个项的设置值 零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
 .参数 hKey, 整数型, , 一个已打开项的句柄,或者指定一个标准项名
 .参数 lpValueName, 文本型, , 要获取值的名字
 .参数 lpReserved, 整数型, , 未用,设为零
 .参数 lpType, 整数型, 传址, 用于装载取回数据类型的一个变量
 .参数 lpData, 字节集, 传址, 用于装载指定值的一个缓冲区
 .参数 lpcbData, 整数型, 传址, 用于装载lpData缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字节数;
.DLL命令 注册表_RegDeleteValueA, 整数型, "advapi32.dll", "RegDeleteValueA", , _注册表_删除值删除指定项下方的一个值 零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
 .参数 hKey, 整数型, , 一个已打开项的句柄,或标准项名之一
 .参数 lpValueName, 文本型, , 要删除的值名。可设为vbNull或一个空串,表示删除那个项的默认值;
.DLL命令 注册表_RegFlushKey, 整数型, "advapi32.dll", "RegFlushKey", , _注册表_实际写入将对项和它的子项作出的改动实际写入磁盘 Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码
 .参数 hKey, 整数型, , Long,欲刷新的一个项的句柄,或指定一个标准项名

常量数据表

?
1
2
3
4
5
6
7
.版本 2
.常量 HWND_BROADCAST, "65535"
.常量 WM_SETTINGCHANGE, "26"
.常量 SMTO_NORMAL, "0"
.常量 图标126, "<文本长度: 5>", , ,-126 红
.常量 图标127, "<文本长度: 5>", , ,-127 蓝
.常量 图标134, "<文本长度: 5>", , ,-134 红

注册表删除代码

?
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
.版本 2
.程序集 注册表
.子程序 _打开项, 整数型
.参数 项名称, 文本型
.参数 是否创建, 逻辑型, 可空, 默认为假:打开 真:如果项不存在则创建项
.局部变量 局_根句柄, 整数型
.局部变量 局_项句柄, 整数型
.局部变量 局_项文本, 文本型
.局部变量 局_位置, 整数型
.局部变量 b, 整数型
局_位置 = 寻找文本 (项名称, “\”, , 假)
局_项文本 = 取文本左边 (项名称, 局_位置 - 1)
.判断开始 (局_项文本 = “HKEY_CLASSES_ROOT”)
 局_根句柄 = 2147483648
.判断 (局_项文本 = “HKEY_CURRENT_USER”)
 局_根句柄 = 2147483649
.判断 (局_项文本 = “HKEY_LOCAL_MACHINE”)
 局_根句柄 = 2147483650
.判断 (局_项文本 = “HKEY_USERS”)
 局_根句柄 = 2147483651
.判断 (文本比较 (局_项文本, “HKEY_CURRENT_CONFIG”, 假) = 0)
 局_根句柄 = 2147483653
.默认
 返回 (0)
.判断结束
.如果 (是否创建)
 b = 注册表_RegCreateKeyA (局_根句柄, 取文本右边 (项名称, 取文本长度 (项名称) - 局_位置), 局_项句柄)
.否则
 b = 注册表_RegOpenKeyA (局_根句柄, 取文本右边 (项名称, 取文本长度 (项名称) - 局_位置), 局_项句柄)
.如果结束
.如果真 (b = 0)
 返回 (局_项句柄)
.如果真结束
返回 (0)
.子程序 注册表_枚举子项, 整数型, 公开, 枚举指定项名称下的子项(成功返回子项目数,失败返回-1)
.参数 项名称, 文本型
.参数 子项, 文本型, 可空 数组, 获取的子项数组
.局部变量 局_a, 整数型
.局部变量 局_计次, 整数型
.局部变量 局_项名, 文本型
清除数组 (子项)
局_a = _打开项 (项名称)
.如果真 (局_a = 0)
 返回 (-1)
.如果真结束
局_项名 = 取空白文本 (256)
.判断循环首 (注册表_RegEnumKeyA (局_a, 局_计次, 局_项名, 256) = 0)
 加入成员 (子项, 局_项名)
 局_计次 = 局_计次 + 1
 处理事件 ()
.判断循环尾 ()
注册表_RegCloseKey (局_a)
返回 (取数组成员数 (子项))
.子程序 注册表_删除项, 逻辑型, 公开, 删除指定项名称以及它的所有子项与键值
.参数 项名称, 文本型, , 欲删除的项名称,尾部不要加"\"
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 c, 整数型
.局部变量 子项, 文本型, , "0"
.局部变量 局_计次, 整数型
.如果真 (取文本右边 (项名称, 1) = “\”)
 返回 (假)
.如果真结束
c = 倒找文本 (项名称, “\”, , 假)
a = _打开项 (取文本左边 (项名称, c))
.如果真 (a = 0)
 返回 (假)
.如果真结束
.计次循环首 (注册表_枚举子项 (项名称, 子项), 局_计次)
 注册表_删除项 (项名称 + “\” + 子项 [局_计次])
.计次循环尾 ()
b = 注册表_RegDeleteKeyA (a, 取文本右边 (项名称, 取文本长度 (项名称) - c))
注册表_RegCloseKey (a)
返回 (b = 0)
.子程序 注册表_是否存在, 逻辑型, 公开, 判断指定注册项名称(键名)是否存在(存在返回真,否则返回假)
.参数 项名称, 文本型, , 欲判断的项名称
.参数 键名, 文本型, 可空, 欲判断的键名.如果为空则只判断项名称是否存在
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 值, 字节集
a = _打开项 (项名称)
.如果真 (是否为空 (键名))
 注册表_RegCloseKey (a)
 返回 (a ≠ 0)
.如果真结束
值 = 取空白字节集 (256)
b = 注册表_RegQueryValueExA (a, 键名, 0, 0, 值, 256)
注册表_RegCloseKey (a)
返回 (b = 0)
.子程序 注册表_删除键名, 逻辑型, 公开, 删除指定项下的某个键名
.参数 项名称, 文本型, , 欲删除键名所在的项名称
.参数 键名, 文本型, , 欲删除的键名
.局部变量 a, 整数型
.局部变量 b, 整数型
a = _打开项 (项名称)
.如果真 (a = 0)
 返回 (假)
.如果真结束
b = 注册表_RegDeleteValueA (a, 键名)
注册表_RegCloseKey (a)
.子程序 注册表_刷新项, 逻辑型, 公开, 将对项和它的子项作出的改动实际写入磁盘
.参数 项名称, 文本型
.局部变量 a, 整数型
.局部变量 b, 整数型
.局部变量 值, 字节集
a = _打开项 (项名称)
.如果真 (a = 0)
 返回 (假)
.如果真结束
b = 注册表_RegFlushKey (a)
注册表_RegCloseKey (a)
返回 (b = 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
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
.版本 2
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.程序集变量 局部_路径, 文本型
.子程序 __启动窗口_创建完毕
图片框2.图片 = #ICON_e1
图片框3.图片 = #ICON_e2
图片框4.图片 = #ICON_EC
图片框5.图片 = #ICON_EDB
图片框6.图片 = #ICON_FNE
图片框7.图片 = #ICON_LIB
判断注册表 ()
.子程序 判断注册表, , , 根据注册表项键值判断是否关联
.如果真 (注册项是否存在 (#根类, “E.Document\shell\open\command\”) = 真)
 局部_路径 = 取文本注册项 (#根类, “E.Document\shell\open\command\”, )
 局部_路径 = 取文本左边 (局部_路径, 取文本长度 (局部_路径) - 5)
 编辑框_易语言主程序.内容 = 局部_路径 ' + “e.exe”
 通用对话框.初始目录 = 局部_路径
 .如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\.e”))
  .如果 (取文本注册项 (#根类, “.e\”, ) = “E.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “E.Document\shell\open\command\”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1)
    选择框_易语言源码_文件双击打开.选中 = 真
    选择框_易语言源码_文件双击打开.禁止 = 真
   .否则
    选择框_易语言源码_文件双击打开.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “E.Document\DefaultIcon\”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E.Document\DefaultIcon\”, )) = 真)
    选择框_易语言源码_图标显示.选中 = 真
    选择框_易语言源码_图标显示.禁止 = 真
   .否则
    选择框_易语言源码_图标显示.选中 = 真
   .如果结束
   .如果 (注册项是否存在 (#根类, “.e\ShellNew\NullFile”) = 真)
    选择框_易语言源码_右键新建易程序.选中 = 真
    选择框_易语言源码_右键新建易程序.禁止 = 真
   .否则
    选择框_易语言源码_右键新建易程序.选中 = 真
   .如果结束
  .否则
   选择框_易语言源码_文件双击打开.选中 = 真
   选择框_易语言源码_图标显示.选中 = 真
   选择框_易语言源码_右键新建易程序.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.e8\”, ) = “E8.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “E8.Document\DefaultIcon\”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E8.Document\DefaultIcon\”, )) = 真)
    选择框_易语言配置信息_图标显示.选中 = 真
    选择框_易语言配置信息_图标显示.禁止 = 真
   .否则
    选择框_易语言配置信息_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “E8.Document\Shell\Command\”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E8.Document\Shell\Command\”, )) = 真)
    选择框_易语言配置信息_文件双击打开.选中 = 真
    选择框_易语言配置信息_文件双击打开.禁止 = 真
   .否则
    选择框_易语言配置信息_文件双击打开.选中 = 真
   .如果结束
   .如果 (注册项是否存在 (#根类, “.e8\ShellNew\NullFile”) = 真)
    选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真
    选择框_易语言配置信息_右键新建易程序配置信息.禁止 = 真
   .否则
    选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “E8.Document\Shell\用记事本打开\Command\”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E8.Document\Shell\用记事本打开\Command\”, )) = 真)
    选择框_易语言配置信息_右键用易语言打开.选中 = 真
    选择框_易语言配置信息_右键用易语言打开.禁止 = 真
   .否则
    选择框_易语言配置信息_右键用易语言打开.选中 = 真
   .如果结束
   .如果 (文件是否存在 (取文本注册项 (#根类, “E8.Document\Shell\用记事本打开\Command\”, “notepad.exe” + “ ” + #引号 + “%1” + #引号)) = 真)
    选择框_易语言配置信息_右键用记事本打开.选中 = 真
    选择框_易语言配置信息_右键用记事本打开.禁止 = 真
   .否则
    选择框_易语言配置信息_右键用记事本打开.选中 = 真
   .如果结束
  .否则
   选择框_易语言配置信息_图标显示.选中 = 真
   选择框_易语言配置信息_文件双击打开.选中 = 真
   选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真
   选择框_易语言配置信息_右键用易语言打开.选中 = 真
   选择框_易语言配置信息_右键用记事本打开.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.ec\”, ) = “ec_auto_file”)
   .如果 (寻找文本 (取文本注册项 (#根类, “ec_auto_file\DefaultIcon\”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “ec_auto_file\DefaultIcon\”, )) = 真)
    选择框_易语言模块_图标显示.选中 = 真
    选择框_易语言模块_图标显示.禁止 = 真
   .否则
    选择框_易语言模块_图标显示.选中 = 真
   .如果结束
  .否则
   选择框_易语言模块_图标显示.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.edb\”, ) = “EDB.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “EDB.Document\DefaultIcon\”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “EDB.Document\DefaultIcon\”, )) = 真)
    选择框_易数据库文件_图标显示.选中 = 真
    选择框_易数据库文件_图标显示.禁止 = 真
   .否则
    选择框_易数据库文件_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “EDB.Document\Shell\Command\”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “EDB.Document\Shell\Command\”, )) = 真)
    选择框_易数据库文件_文件双击打开.选中 = 真
    选择框_易数据库文件_文件双击打开.禁止 = 真
   .否则
    选择框_易数据库文件_文件双击打开.选中 = 真
   .如果结束
  .否则
   选择框_易数据库文件_图标显示.选中 = 真
   选择框_易数据库文件_文件双击打开.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.fne\”, ) = “FNE.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “FNE.Document\DefaultIcon\”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.Document\DefaultIcon\”, )) = 真)
    选择框_易支持库文件_图标显示.选中 = 真
    选择框_易支持库文件_图标显示.禁止 = 真
   .否则
    选择框_易支持库文件_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “FNE.Document\Shell\复制到易语言目录\Command\”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.Document\Shell\复制到易语言目录\Command\”, )) = 真)
    选择框_易支持库文件_右键复制到易语言目录.选中 = 真
    选择框_易支持库文件_右键复制到易语言目录.禁止 = 真
   .否则
    选择框_易支持库文件_右键复制到易语言目录.选中 = 假
   .如果结束
  .否则
   选择框_易支持库文件_图标显示.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.lib\”, ) = “LIB.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “LIB.Document\DefaultIcon\”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.Document\DefaultIcon\”, )) = 真)
    选择框_易静态库文件_图标显示.选中 = 真
    选择框_易静态库文件_图标显示.禁止 = 真
   .否则
    选择框_易静态库文件_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “LIB.Document\Shell\复制到易语言目录\Command\”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.Document\Shell\复制到易语言目录\Command\”, )) = 真)
    选择框_易静态库文件_右键复制到易语言目录.选中 = 真
    选择框_易静态库文件_右键复制到易语言目录.禁止 = 真
   .否则
    选择框_易静态库文件_右键复制到易语言目录.选中 = 假
   .如果结束
  .否则
   选择框_易静态库文件_图标显示.选中 = 真
  .如果结束
 .如果真结束
.如果真结束
.子程序 _按钮_一键修复_被单击
.如果 (修复易语言源码E () = 真 且 修复易程序配置信息E8 () = 真 且 修复易语言模块EC () = 真 且 修复易数据库EDB () = 真 且 修复易支持库FNE () = 真 且 修复易静态库LIB () = 真)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\.e”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\E.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\.e8”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\E8.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\.ec”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\ec_auto_file”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\.edb”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\EDB.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\.fne”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\FNE.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\.lib”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT\LIB.Document”)
 刷新注册表 ()
 刷新注册表2 ()
 信息框 (“文件关联 修复成功”, 64, “提示”, _启动窗口.取窗口句柄 ())
.否则
 信息框 (“修复失败,请以管理员身份运行”, 64, , _启动窗口.取窗口句柄 ())
.如果结束
.子程序 e文件关联, , , 测试
写注册项 (#根类, “.e\”, “”)
写注册项 (#根类, “.e\ShellNew\”, “”)
写注册项 (#根类, “.e\ShellNew\NullFile”, “”) ' 右键新建
写注册项 (#根类, “E.Document\”, “易语言程序”) ' 文件描述 ' 此值影响右键新建名称和文
写注册项 (#根类, “E.Document\DefaultIcon\”, 编辑框_易语言主程序.内容 + “ ,-127”) ' 图标关联
写注册项 (#根类, “E.Document\shell\”, “”)
写注册项 (#根类, “E.Document\shell\open\”, “”)
写注册项 (#根类, “E.Document\shell\open\command\”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%1” + #引号) ' 打开命令
.子程序 _按钮_删除所有_被单击
.如果真 (信息框 (“此操作将从系统清除所有关联信息” + #换行符 + “包括:*.e 、*.e8 、*.ec 、*.edb 、*.fne 、*.lib。” + #换行符 + #换行符 + “点击[确认]则继续操作,点击[取消]则退出。”, 1 + 32 + 256, “是否继续操作?”, _启动窗口.取窗口句柄 ()) = #确认钮)
 .如果 (删除易语言源码E () = 真 且 删除易程序配置信息E8 () = 真 且 删除易语言模块EC () = 真 且 删除易数据库EDB () = 真 且 删除易支持库FNE () = 真 且 删除易静态库LIB () = 真)
  刷新注册表 ()
  信息框 (“文件关联 修复成功”, 64, “提示”, _启动窗口.取窗口句柄 ())
 .否则
  信息框 (“修复失败,请以管理员身份运行”, 64, , _启动窗口.取窗口句柄 ())
 .如果结束
.如果真结束
.子程序 修复易语言源码E, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 返回E, 逻辑型, , , 记录返回值
返回E = 真
.如果真 (选择框_易语言源码_图标显示.选中 = 真 且 选择框_易语言源码_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.e\”, “E.Document”) = 真 且 写注册项 (#根类, “E.Document\”, “易语言程序”) = 真 且 写注册项 (#根类, “E.Document\DefaultIcon\”, 编辑框_易语言主程序.内容 + #图标127) = 真)
  返回E = 真
 .否则
  返回E = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言源码_文件双击打开.选中 = 真 且 选择框_易语言源码_文件双击打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e\”, “E.Document”) = 真 且 写注册项 (#根类, “E.Document\”, “易语言程序”) = 真 且 写注册项 (#根类, “E.Document\shell\open\command\”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%1” + #引号) = 真)
  返回E = 真
 .否则
  返回E = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言源码_右键新建易程序.选中 = 真 且 选择框_易语言源码_右键新建易程序.禁止 = 假)
 .如果 (写注册项 (#根类, “.e\”, “E.Document”) = 真 且 写注册项 (#根类, “E.Document\”, “易语言程序”) = 真 且 写注册项 (#根类, “.e\ShellNew\NullFile”, “”) = 真)
  返回E = 真
 .否则
  返回E = 假
 .如果结束
.如果真结束
返回 (返回E)
.子程序 删除易语言源码E, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回E, 逻辑型
删除返回E = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\.e”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\.e”) = 真)
  删除返回E = 真
 .否则
  删除返回E = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\E.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\E.Document”) = 真)
  删除返回E = 真
 .否则
  删除返回E = 假
 .如果结束
.如果真结束
返回 (删除返回E)
.子程序 修复易语言模块EC, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 _路径, 文本型
.局部变量 返回EC, 逻辑型, , , 记录返回值
返回EC = 真
.如果真 (选择框_易语言模块_图标显示.选中 = 真 且 选择框_易语言模块_图标显示.禁止 = 假)
 _路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
 .如果 (写注册项 (#根类, “.ec\”, “ec_auto_file”) = 真 且 写注册项 (#根类, “ec_auto_file\”, “易语言模块”) = 真 且 写注册项 (#根类, “ec_auto_file\DefaultIcon\”, _路径 + “help\ec.ico”) = 真)
  写到文件 (局部_路径 + “help\ec.ico”, #ICON_EC)
  返回EC = 真
 .否则
  返回EC = 假
 .如果结束
.如果真结束
返回 (返回EC)
.子程序 删除易语言模块EC, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回EC, 逻辑型
删除返回EC = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\.ec”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\.ec”) = 真)
  删除返回EC = 真
 .否则
  删除返回EC = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\ec_auto_file”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\ec_auto_file”) = 真)
  删除返回EC = 真
 .否则
  删除返回EC = 假
 .如果结束
.如果真结束
返回 (删除返回EC)
.子程序 修复易程序配置信息E8, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 返回E8, 逻辑型, , , 记录返回值
返回E8 = 真
.如果真 (选择框_易语言配置信息_图标显示.选中 = 真 且 选择框_易语言配置信息_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8\”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document\”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.Document\DefaultIcon\”, 编辑框_易语言主程序.内容 + #图标134) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_文件双击打开.选中 = 真 且 选择框_易语言配置信息_文件双击打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8\”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document\”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.Document\Shell\Open\Command\”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%1” + #引号) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真 且 选择框_易语言配置信息_右键新建易程序配置信息.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8\”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document\”, “易程序配置信息”) = 真 且 写注册项 (#根类, “.e\ShellNew\NullFile”, “”) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_右键用记事本打开.选中 = 真 且 选择框_易语言配置信息_右键用记事本打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8\”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document\”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.Document\Shell\用记事本打开\Command\”, “notepad.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_右键用易语言打开.选中 = 真 且 选择框_易语言配置信息_右键用易语言打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8\”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document\”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.Document\Shell\用易语言打开\Command\”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%1” + #引号) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
返回 (返回E8)
.子程序 删除易程序配置信息E8, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回E8, 逻辑型
删除返回E8 = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\.e8”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\.e8”) = 真)
  删除返回E8 = 真
 .否则
  删除返回E8 = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\E8.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\E8.Document”) = 真)
  删除返回E8 = 真
 .否则
  删除返回E8 = 假
 .如果结束
.如果真结束
返回 (删除返回E8)
.子程序 修复易数据库EDB, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 EDB_路径, 文本型
.局部变量 返回EDB, 逻辑型, , , 记录返回值
EDB_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
返回EDB = 真
.如果真 (选择框_易数据库文件_图标显示.选中 = 真 且 选择框_易数据库文件_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.edb\”, “EDB.Document”) = 真 且 写注册项 (#根类, “EDB.Document\”, “易数据库文件”) 且 写注册项 (#根类, “LIB.Document\DefaultIcon”, EDB_路径 + “help\edb.ico”) = 真)
  写到文件 (EDB_路径 + “help\edb.ico”, #ICON_EDB)
  返回EDB = 真
 .否则
  返回EDB = 假
 .如果结束
.如果真结束
.如果真 (选择框_易数据库文件_文件双击打开.选中 = 真 且 选择框_易数据库文件_文件双击打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.edb\”, “EDB.Document”) = 真 且 写注册项 (#根类, “EDB.Document\”, “易数据库文件”) 且 写注册项 (#根类, “EDB.Document\Shell\Open\Command”, EDB_路径 + “tools\EDBView.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  写到文件 (局部_路径 + “tools\EDBView.exe”, #EDBView)
  返回EDB = 真
 .否则
  返回EDB = 假
 .如果结束
.如果真结束
返回 (返回EDB)
.子程序 删除易数据库EDB, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回EDB, 逻辑型
删除返回EDB = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\.edb”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\.edb”) = 真)
  删除返回EDB = 真
 .否则
  删除返回EDB = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\EDB.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\EDB.Document”) = 真)
  删除返回EDB = 真
 .否则
  删除返回EDB = 假
 .如果结束
.如果真结束
返回 (删除返回EDB)
.子程序 修复易支持库FNE, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 FNE_路径, 文本型
.局部变量 返回FNE, 逻辑型, , , 记录返回值
FNE_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
返回FNE = 真
.如果真 (选择框_易支持库文件_图标显示.选中 = 真 且 选择框_易支持库文件_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.fne\”, “FNE.Document”) = 真 且 写注册项 (#根类, “FNE.Document\”, “易支持库文件”) = 真 且 写注册项 (#根类, “FNE.Document\DefaultIcon\”, FNE_路径 + “help\fne.ico”) = 真)
  写到文件 (局部_路径 + “help\fne.ico”, #ICON_FNE)
  返回FNE = 真
 .否则
  返回FNE = 假
 .如果结束
.如果真结束
.如果真 (选择框_易支持库文件_右键复制到易语言目录.选中 = 真 且 选择框_易支持库文件_右键复制到易语言目录.禁止 = 假)
 FNE_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
 .如果 (写注册项 (#根类, “.fne\”, “FNE.Document”) = 真 且 写注册项 (#根类, “FNE.Document\”, “易支持库文件”) = 真 且 写注册项 (#根类, “FNE.Document\Shell\复制到易语言目录\Command\”, FNE_路径 + “tools\CopytoE.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  写到文件 (局部_路径 + “tools\CopytoE.exe”, #CopytoE)
  返回FNE = 真
 .否则
  返回FNE = 假
 .如果结束
.如果真结束
返回 (返回FNE)
.子程序 删除易支持库FNE, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回FNE, 逻辑型
删除返回FNE = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\.fne”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\.fne”) = 真)
  删除返回FNE = 真
 .否则
  删除返回FNE = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\FNE.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\FNE.Document”) = 真)
  删除返回FNE = 真
 .否则
  删除返回FNE = 假
 .如果结束
.如果真结束
返回 (删除返回FNE)
.子程序 修复易静态库LIB, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 LIB_路径, 文本型
.局部变量 返回LIB, 逻辑型, , , 记录返回值
LIB_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
返回LIB = 真
.如果真 (选择框_易静态库文件_图标显示.选中 = 真 且 选择框_易静态库文件_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.lib\”, “LIB.Document”) = 真 且 写注册项 (#根类, “LIB.Document\”, “易静态库文件”) = 真 且 写注册项 (#根类, “LIB.Document\DefaultIcon\”, LIB_路径 + “help\lib.ico”) = 真)
  写到文件 (LIB_路径 + “help\lib.ico”, #ICON_LIB)
  返回LIB = 真
 .否则
  返回LIB = 假
 .如果结束
.如果真结束
.如果真 (选择框_易静态库文件_右键复制到易语言目录.选中 = 真 且 选择框_易静态库文件_右键复制到易语言目录.禁止 = 假)
 .如果 (写注册项 (#根类, “.lib\”, “LIB.Document”) = 真 且 写注册项 (#根类, “LIB.Document\”, “易静态库文件”) = 真 且 写注册项 (#根类, “LIB.Document\Shell\复制到易语言目录\Command\”, LIB_路径 + “tools\CopytoE.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  写到文件 (LIB_路径 + “tools\CopytoE.exe”, #CopytoE)
  返回LIB = 真
 .否则
  返回LIB = 假
 .如果结束
.如果真结束
返回 (返回LIB)
.子程序 删除易静态库LIB, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回LIB, 逻辑型
删除返回LIB = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\.lib”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\.lib”) = 真)
  删除返回LIB = 真
 .否则
  删除返回LIB = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT\LIB.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT\LIB.Document”) = 真)
  删除返回LIB = 真
 .否则
  删除返回LIB = 假
 .如果结束
.如果真结束
返回 (删除返回LIB)
.子程序 刷新注册表
API_SendMessage (#HWND_BROADCAST, #WM_SETTINGCHANGE, 0, 0)
.子程序 刷新注册表2
.局部变量 dwResult, 整数型
API_SendMessageTimeout (#HWND_BROADCAST, #WM_SETTINGCHANGE, 0, 0, #SMTO_NORMAL, 1000, dwResult)
.子程序 _透明标签1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
打开指定网址 (“//www.zzvips.com/”)
.子程序 _按钮_浏览_被单击
通用对话框.类型 = 0
通用对话框.标题 = “选择易语言主程序”
通用对话框.过滤器 = “易语言主程序(e.exe)|e.exe”
.如果真 (通用对话框.打开 ())
 编辑框_易语言主程序.内容 = 通用对话框.文件名
.如果真结束
.子程序 __启动窗口_尺寸被改变
_启动窗口.宽度 = 455
_启动窗口.高度 = 480
.子程序 __启动窗口_将被销毁
_启动窗口.销毁 ()

运行结果:

易语言通过注册表将易文件关联修复的源码

总结

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

延伸 · 阅读

精彩推荐
  • 易语言易语言在画板中写出指定文本当画板中已满会自动滚屏

    易语言在画板中写出指定文本当画板中已满会自动滚屏

    今天小编就为大家分享一篇关于易语言在画板中写出指定文本当画板中已满会自动滚屏,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,...

    易语言帮助手册9092022-01-12
  • 易语言一步一步跟我学易语言之关于变量

    一步一步跟我学易语言之关于变量

    今天小编就为大家分享一篇关于一步一步跟我学易语言之关于变量,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    易语言帮助手册10822021-06-17
  • 易语言易语言设置进度条边框样式的方法

    易语言设置进度条边框样式的方法

    今天小编就为大家分享一篇关于易语言设置进度条边框样式的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随...

    易语言帮助手册4422022-01-20
  • 易语言易语言获取指定磁盘的名称

    易语言获取指定磁盘的名称

    今天小编就为大家分享一篇关于易语言获取指定磁盘的名称,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来...

    易语言帮助手册12662022-01-04
  • 易语言易语言生成exe文件的方法

    易语言生成exe文件的方法

    在本篇内容中小编给大家分享的是关于易语言生成exe文件的方法知识点,需要的朋友们参考下。...

    易语言教程网14792022-03-01
  • 易语言一步一步跟我学易语言之第二个易程序菜单设计

    一步一步跟我学易语言之第二个易程序菜单设计

    今天小编就为大家分享一篇关于的一步一步跟我学易语言之第二个易程序菜单设计,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要...

    易语言帮助手册7092021-06-17
  • 易语言实例操作易语言载入窗口

    实例操作易语言载入窗口

    在本文中小编给大家整理的是关于易语言载入窗口的教程和步骤内容,需要的可以跟着学习下...

    易语言教程网19162022-03-02
  • 易语言易语言关于程序进程和线程的基础知识

    易语言关于程序进程和线程的基础知识

    今天小编就为大家分享一篇关于易语言关于程序进程和线程的基础知识,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    三叶资源网6662022-02-24