我是靠谱客的博主 繁荣自行车,最近开发中收集的这篇文章主要介绍易语言通过注册表将易文件关联修复的源码,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

DLL命令表

.版本 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, 文本型, , 欲创建的新子项。可同时创建多个项,只需用反斜杠将它们分隔开即可。例如level1level2newkey
 .参数 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,欲刷新的一个项的句柄,或指定一个标准项名

常量数据表

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

注册表删除代码

.版本 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)

易文件关联修复代码

.版本 2
.支持库 eAPI
.程序集 窗口程序集_启动窗口
.程序集变量 局部_路径, 文本型
.子程序 __启动窗口_创建完毕
图片框2.图片 = #ICON_e1
图片框3.图片 = #ICON_e2
图片框4.图片 = #ICON_EC
图片框5.图片 = #ICON_EDB
图片框6.图片 = #ICON_FNE
图片框7.图片 = #ICON_LIB
判断注册表 ()
.子程序 判断注册表, , , 根据注册表项键值判断是否关联
.如果真 (注册项是否存在 (#根类, “E.Documentshellopencommand”) = 真)
 局部_路径 = 取文本注册项 (#根类, “E.Documentshellopencommand”, )
 局部_路径 = 取文本左边 (局部_路径, 取文本长度 (局部_路径) - 5)
 编辑框_易语言主程序.内容 = 局部_路径 ' + “e.exe”
 通用对话框.初始目录 = 局部_路径
 .如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT.e”))
  .如果 (取文本注册项 (#根类, “.e”, ) = “E.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “E.Documentshellopencommand”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1)
    选择框_易语言源码_文件双击打开.选中 = 真
    选择框_易语言源码_文件双击打开.禁止 = 真
   .否则
    选择框_易语言源码_文件双击打开.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “E.DocumentDefaultIcon”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E.DocumentDefaultIcon”, )) = 真)
    选择框_易语言源码_图标显示.选中 = 真
    选择框_易语言源码_图标显示.禁止 = 真
   .否则
    选择框_易语言源码_图标显示.选中 = 真
   .如果结束
   .如果 (注册项是否存在 (#根类, “.eShellNewNullFile”) = 真)
    选择框_易语言源码_右键新建易程序.选中 = 真
    选择框_易语言源码_右键新建易程序.禁止 = 真
   .否则
    选择框_易语言源码_右键新建易程序.选中 = 真
   .如果结束
  .否则
   选择框_易语言源码_文件双击打开.选中 = 真
   选择框_易语言源码_图标显示.选中 = 真
   选择框_易语言源码_右键新建易程序.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.e8”, ) = “E8.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “E8.DocumentDefaultIcon”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E8.DocumentDefaultIcon”, )) = 真)
    选择框_易语言配置信息_图标显示.选中 = 真
    选择框_易语言配置信息_图标显示.禁止 = 真
   .否则
    选择框_易语言配置信息_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “E8.DocumentShellCommand”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E8.DocumentShellCommand”, )) = 真)
    选择框_易语言配置信息_文件双击打开.选中 = 真
    选择框_易语言配置信息_文件双击打开.禁止 = 真
   .否则
    选择框_易语言配置信息_文件双击打开.选中 = 真
   .如果结束
   .如果 (注册项是否存在 (#根类, “.e8ShellNewNullFile”) = 真)
    选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真
    选择框_易语言配置信息_右键新建易程序配置信息.禁止 = 真
   .否则
    选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “E8.DocumentShell用记事本打开Command”, ), 编辑框_易语言主程序.内容, , 假) ≠ -1 或 文件是否存在 (取文本注册项 (#根类, “E8.DocumentShell用记事本打开Command”, )) = 真)
    选择框_易语言配置信息_右键用易语言打开.选中 = 真
    选择框_易语言配置信息_右键用易语言打开.禁止 = 真
   .否则
    选择框_易语言配置信息_右键用易语言打开.选中 = 真
   .如果结束
   .如果 (文件是否存在 (取文本注册项 (#根类, “E8.DocumentShell用记事本打开Command”, “notepad.exe” + “ ” + #引号 + “%1” + #引号)) = 真)
    选择框_易语言配置信息_右键用记事本打开.选中 = 真
    选择框_易语言配置信息_右键用记事本打开.禁止 = 真
   .否则
    选择框_易语言配置信息_右键用记事本打开.选中 = 真
   .如果结束
  .否则
   选择框_易语言配置信息_图标显示.选中 = 真
   选择框_易语言配置信息_文件双击打开.选中 = 真
   选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真
   选择框_易语言配置信息_右键用易语言打开.选中 = 真
   选择框_易语言配置信息_右键用记事本打开.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.ec”, ) = “ec_auto_file”)
   .如果 (寻找文本 (取文本注册项 (#根类, “ec_auto_fileDefaultIcon”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “ec_auto_fileDefaultIcon”, )) = 真)
    选择框_易语言模块_图标显示.选中 = 真
    选择框_易语言模块_图标显示.禁止 = 真
   .否则
    选择框_易语言模块_图标显示.选中 = 真
   .如果结束
  .否则
   选择框_易语言模块_图标显示.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.edb”, ) = “EDB.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “EDB.DocumentDefaultIcon”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “EDB.DocumentDefaultIcon”, )) = 真)
    选择框_易数据库文件_图标显示.选中 = 真
    选择框_易数据库文件_图标显示.禁止 = 真
   .否则
    选择框_易数据库文件_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “EDB.DocumentShellCommand”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “EDB.DocumentShellCommand”, )) = 真)
    选择框_易数据库文件_文件双击打开.选中 = 真
    选择框_易数据库文件_文件双击打开.禁止 = 真
   .否则
    选择框_易数据库文件_文件双击打开.选中 = 真
   .如果结束
  .否则
   选择框_易数据库文件_图标显示.选中 = 真
   选择框_易数据库文件_文件双击打开.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.fne”, ) = “FNE.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “FNE.DocumentDefaultIcon”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.DocumentDefaultIcon”, )) = 真)
    选择框_易支持库文件_图标显示.选中 = 真
    选择框_易支持库文件_图标显示.禁止 = 真
   .否则
    选择框_易支持库文件_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “FNE.DocumentShell复制到易语言目录Command”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.DocumentShell复制到易语言目录Command”, )) = 真)
    选择框_易支持库文件_右键复制到易语言目录.选中 = 真
    选择框_易支持库文件_右键复制到易语言目录.禁止 = 真
   .否则
    选择框_易支持库文件_右键复制到易语言目录.选中 = 假
   .如果结束
  .否则
   选择框_易支持库文件_图标显示.选中 = 真
  .如果结束
  .如果 (取文本注册项 (#根类, “.lib”, ) = “LIB.Document”)
   .如果 (寻找文本 (取文本注册项 (#根类, “LIB.DocumentDefaultIcon”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.DocumentDefaultIcon”, )) = 真)
    选择框_易静态库文件_图标显示.选中 = 真
    选择框_易静态库文件_图标显示.禁止 = 真
   .否则
    选择框_易静态库文件_图标显示.选中 = 真
   .如果结束
   .如果 (寻找文本 (取文本注册项 (#根类, “LIB.DocumentShell复制到易语言目录Command”, ), 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5), , 假) ≠ -1 且 文件是否存在 (取文本注册项 (#根类, “FNE.DocumentShell复制到易语言目录Command”, )) = 真)
    选择框_易静态库文件_右键复制到易语言目录.选中 = 真
    选择框_易静态库文件_右键复制到易语言目录.禁止 = 真
   .否则
    选择框_易静态库文件_右键复制到易语言目录.选中 = 假
   .如果结束
  .否则
   选择框_易静态库文件_图标显示.选中 = 真
  .如果结束
 .如果真结束
.如果真结束
.子程序 _按钮_一键修复_被单击
.如果 (修复易语言源码E () = 真 且 修复易程序配置信息E8 () = 真 且 修复易语言模块EC () = 真 且 修复易数据库EDB () = 真 且 修复易支持库FNE () = 真 且 修复易静态库LIB () = 真)
 注册表_刷新项 (“HKEY_CLASSES_ROOT.e”)
 注册表_刷新项 (“HKEY_CLASSES_ROOTE.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT.e8”)
 注册表_刷新项 (“HKEY_CLASSES_ROOTE8.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT.ec”)
 注册表_刷新项 (“HKEY_CLASSES_ROOTec_auto_file”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT.edb”)
 注册表_刷新项 (“HKEY_CLASSES_ROOTEDB.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT.fne”)
 注册表_刷新项 (“HKEY_CLASSES_ROOTFNE.Document”)
 注册表_刷新项 (“HKEY_CLASSES_ROOT.lib”)
 注册表_刷新项 (“HKEY_CLASSES_ROOTLIB.Document”)
 刷新注册表 ()
 刷新注册表2 ()
 信息框 (“文件关联 修复成功”, 64, “提示”, _启动窗口.取窗口句柄 ())
.否则
 信息框 (“修复失败,请以管理员身份运行”, 64, , _启动窗口.取窗口句柄 ())
.如果结束
.子程序 e文件关联, , , 测试
写注册项 (#根类, “.e”, “”)
写注册项 (#根类, “.eShellNew”, “”)
写注册项 (#根类, “.eShellNewNullFile”, “”) ' 右键新建
写注册项 (#根类, “E.Document”, “易语言程序”) ' 文件描述 ' 此值影响右键新建名称和文
写注册项 (#根类, “E.DocumentDefaultIcon”, 编辑框_易语言主程序.内容 + “ ,-127”) ' 图标关联
写注册项 (#根类, “E.Documentshell”, “”)
写注册项 (#根类, “E.Documentshellopen”, “”)
写注册项 (#根类, “E.Documentshellopencommand”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%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.DocumentDefaultIcon”, 编辑框_易语言主程序.内容 + #图标127) = 真)
  返回E = 真
 .否则
  返回E = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言源码_文件双击打开.选中 = 真 且 选择框_易语言源码_文件双击打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e”, “E.Document”) = 真 且 写注册项 (#根类, “E.Document”, “易语言程序”) = 真 且 写注册项 (#根类, “E.Documentshellopencommand”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%1” + #引号) = 真)
  返回E = 真
 .否则
  返回E = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言源码_右键新建易程序.选中 = 真 且 选择框_易语言源码_右键新建易程序.禁止 = 假)
 .如果 (写注册项 (#根类, “.e”, “E.Document”) = 真 且 写注册项 (#根类, “E.Document”, “易语言程序”) = 真 且 写注册项 (#根类, “.eShellNewNullFile”, “”) = 真)
  返回E = 真
 .否则
  返回E = 假
 .如果结束
.如果真结束
返回 (返回E)
.子程序 删除易语言源码E, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回E, 逻辑型
删除返回E = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT.e”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT.e”) = 真)
  删除返回E = 真
 .否则
  删除返回E = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOTE.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOTE.Document”) = 真)
  删除返回E = 真
 .否则
  删除返回E = 假
 .如果结束
.如果真结束
返回 (删除返回E)
.子程序 修复易语言模块EC, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 _路径, 文本型
.局部变量 返回EC, 逻辑型, , , 记录返回值
返回EC = 真
.如果真 (选择框_易语言模块_图标显示.选中 = 真 且 选择框_易语言模块_图标显示.禁止 = 假)
 _路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
 .如果 (写注册项 (#根类, “.ec”, “ec_auto_file”) = 真 且 写注册项 (#根类, “ec_auto_file”, “易语言模块”) = 真 且 写注册项 (#根类, “ec_auto_fileDefaultIcon”, _路径 + “helpec.ico”) = 真)
  写到文件 (局部_路径 + “helpec.ico”, #ICON_EC)
  返回EC = 真
 .否则
  返回EC = 假
 .如果结束
.如果真结束
返回 (返回EC)
.子程序 删除易语言模块EC, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回EC, 逻辑型
删除返回EC = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT.ec”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT.ec”) = 真)
  删除返回EC = 真
 .否则
  删除返回EC = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOTec_auto_file”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOTec_auto_file”) = 真)
  删除返回EC = 真
 .否则
  删除返回EC = 假
 .如果结束
.如果真结束
返回 (删除返回EC)
.子程序 修复易程序配置信息E8, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 返回E8, 逻辑型, , , 记录返回值
返回E8 = 真
.如果真 (选择框_易语言配置信息_图标显示.选中 = 真 且 选择框_易语言配置信息_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.DocumentDefaultIcon”, 编辑框_易语言主程序.内容 + #图标134) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_文件双击打开.选中 = 真 且 选择框_易语言配置信息_文件双击打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.DocumentShellOpenCommand”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%1” + #引号) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_右键新建易程序配置信息.选中 = 真 且 选择框_易语言配置信息_右键新建易程序配置信息.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document”, “易程序配置信息”) = 真 且 写注册项 (#根类, “.eShellNewNullFile”, “”) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_右键用记事本打开.选中 = 真 且 选择框_易语言配置信息_右键用记事本打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.DocumentShell用记事本打开Command”, “notepad.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
.如果真 (选择框_易语言配置信息_右键用易语言打开.选中 = 真 且 选择框_易语言配置信息_右键用易语言打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.e8”, “E8.Document”) = 真 且 写注册项 (#根类, “E8.Document”, “易程序配置信息”) = 真 且 写注册项 (#根类, “E8.DocumentShell用易语言打开Command”, 编辑框_易语言主程序.内容 + “ ” + #引号 + “%1” + #引号) = 真)
  返回E8 = 真
 .否则
  返回E8 = 假
 .如果结束
.如果真结束
返回 (返回E8)
.子程序 删除易程序配置信息E8, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回E8, 逻辑型
删除返回E8 = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT.e8”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT.e8”) = 真)
  删除返回E8 = 真
 .否则
  删除返回E8 = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOTE8.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOTE8.Document”) = 真)
  删除返回E8 = 真
 .否则
  删除返回E8 = 假
 .如果结束
.如果真结束
返回 (删除返回E8)
.子程序 修复易数据库EDB, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 EDB_路径, 文本型
.局部变量 返回EDB, 逻辑型, , , 记录返回值
EDB_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
返回EDB = 真
.如果真 (选择框_易数据库文件_图标显示.选中 = 真 且 选择框_易数据库文件_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.edb”, “EDB.Document”) = 真 且 写注册项 (#根类, “EDB.Document”, “易数据库文件”) 且 写注册项 (#根类, “LIB.DocumentDefaultIcon”, EDB_路径 + “helpedb.ico”) = 真)
  写到文件 (EDB_路径 + “helpedb.ico”, #ICON_EDB)
  返回EDB = 真
 .否则
  返回EDB = 假
 .如果结束
.如果真结束
.如果真 (选择框_易数据库文件_文件双击打开.选中 = 真 且 选择框_易数据库文件_文件双击打开.禁止 = 假)
 .如果 (写注册项 (#根类, “.edb”, “EDB.Document”) = 真 且 写注册项 (#根类, “EDB.Document”, “易数据库文件”) 且 写注册项 (#根类, “EDB.DocumentShellOpenCommand”, EDB_路径 + “toolsEDBView.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  写到文件 (局部_路径 + “toolsEDBView.exe”, #EDBView)
  返回EDB = 真
 .否则
  返回EDB = 假
 .如果结束
.如果真结束
返回 (返回EDB)
.子程序 删除易数据库EDB, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回EDB, 逻辑型
删除返回EDB = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT.edb”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT.edb”) = 真)
  删除返回EDB = 真
 .否则
  删除返回EDB = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOTEDB.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOTEDB.Document”) = 真)
  删除返回EDB = 真
 .否则
  删除返回EDB = 假
 .如果结束
.如果真结束
返回 (删除返回EDB)
.子程序 修复易支持库FNE, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 FNE_路径, 文本型
.局部变量 返回FNE, 逻辑型, , , 记录返回值
FNE_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
返回FNE = 真
.如果真 (选择框_易支持库文件_图标显示.选中 = 真 且 选择框_易支持库文件_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.fne”, “FNE.Document”) = 真 且 写注册项 (#根类, “FNE.Document”, “易支持库文件”) = 真 且 写注册项 (#根类, “FNE.DocumentDefaultIcon”, FNE_路径 + “helpfne.ico”) = 真)
  写到文件 (局部_路径 + “helpfne.ico”, #ICON_FNE)
  返回FNE = 真
 .否则
  返回FNE = 假
 .如果结束
.如果真结束
.如果真 (选择框_易支持库文件_右键复制到易语言目录.选中 = 真 且 选择框_易支持库文件_右键复制到易语言目录.禁止 = 假)
 FNE_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
 .如果 (写注册项 (#根类, “.fne”, “FNE.Document”) = 真 且 写注册项 (#根类, “FNE.Document”, “易支持库文件”) = 真 且 写注册项 (#根类, “FNE.DocumentShell复制到易语言目录Command”, FNE_路径 + “toolsCopytoE.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  写到文件 (局部_路径 + “toolsCopytoE.exe”, #CopytoE)
  返回FNE = 真
 .否则
  返回FNE = 假
 .如果结束
.如果真结束
返回 (返回FNE)
.子程序 删除易支持库FNE, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回FNE, 逻辑型
删除返回FNE = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT.fne”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT.fne”) = 真)
  删除返回FNE = 真
 .否则
  删除返回FNE = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOTFNE.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOTFNE.Document”) = 真)
  删除返回FNE = 真
 .否则
  删除返回FNE = 假
 .如果结束
.如果真结束
返回 (删除返回FNE)
.子程序 修复易静态库LIB, 逻辑型, , 写注册表,成功返回真,失败返回假。
.局部变量 LIB_路径, 文本型
.局部变量 返回LIB, 逻辑型, , , 记录返回值
LIB_路径 = 取文本左边 (编辑框_易语言主程序.内容, 取文本长度 (编辑框_易语言主程序.内容) - 5)
返回LIB = 真
.如果真 (选择框_易静态库文件_图标显示.选中 = 真 且 选择框_易静态库文件_图标显示.禁止 = 假)
 .如果 (写注册项 (#根类, “.lib”, “LIB.Document”) = 真 且 写注册项 (#根类, “LIB.Document”, “易静态库文件”) = 真 且 写注册项 (#根类, “LIB.DocumentDefaultIcon”, LIB_路径 + “helplib.ico”) = 真)
  写到文件 (LIB_路径 + “helplib.ico”, #ICON_LIB)
  返回LIB = 真
 .否则
  返回LIB = 假
 .如果结束
.如果真结束
.如果真 (选择框_易静态库文件_右键复制到易语言目录.选中 = 真 且 选择框_易静态库文件_右键复制到易语言目录.禁止 = 假)
 .如果 (写注册项 (#根类, “.lib”, “LIB.Document”) = 真 且 写注册项 (#根类, “LIB.Document”, “易静态库文件”) = 真 且 写注册项 (#根类, “LIB.DocumentShell复制到易语言目录Command”, LIB_路径 + “toolsCopytoE.exe” + “ ” + #引号 + “%1” + #引号) = 真)
  写到文件 (LIB_路径 + “toolsCopytoE.exe”, #CopytoE)
  返回LIB = 真
 .否则
  返回LIB = 假
 .如果结束
.如果真结束
返回 (返回LIB)
.子程序 删除易静态库LIB, 逻辑型, , 删注册表,成功返回真,失败返回假。
.局部变量 删除返回LIB, 逻辑型
删除返回LIB = 真
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOT.lib”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOT.lib”) = 真)
  删除返回LIB = 真
 .否则
  删除返回LIB = 假
 .如果结束
.如果真结束
.如果真 (注册表_是否存在 (“HKEY_CLASSES_ROOTLIB.Document”))
 .如果 (注册表_删除项 (“HKEY_CLASSES_ROOTLIB.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.uoften.com/”)
.子程序 _按钮_浏览_被单击
通用对话框.类型 = 0
通用对话框.标题 = “选择易语言主程序”
通用对话框.过滤器 = “易语言主程序(e.exe)|e.exe”
.如果真 (通用对话框.打开 ())
 编辑框_易语言主程序.内容 = 通用对话框.文件名
.如果真结束
.子程序 __启动窗口_尺寸被改变
_启动窗口.宽度 = 455
_启动窗口.高度 = 480
.子程序 __启动窗口_将被销毁
_启动窗口.销毁 ()

运行结果:

总结

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

最后

以上就是繁荣自行车为你收集整理的易语言通过注册表将易文件关联修复的源码的全部内容,希望文章能够帮你解决易语言通过注册表将易文件关联修复的源码所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(115)

评论列表共有 0 条评论

立即
投稿
返回
顶部