当前位置: 主页 > 百科 > 计算机编程 > 易语言源码 >
-12 Comments

易语言IE插件源码

发布于:2016-07-03  |   作者:http://www.zxjsq.net  |   已聚集:人围观

.版本 2

.支持库 EThread

.支持库 iext

.支持库 spec


.程序集 窗口程序集_启动窗口


.子程序 _刷新_被选择


启动线程 (&枚举IE插件, , )


.子程序 枚举IE插件

.局部变量 结果

.局部变量 键名, 文本型

.局部变量 表项索引

.局部变量 变量

.局部变量 有效插件, 文本型

.局部变量 插件路径, 文本型

.局部变量 文件信息, 文件信息

.局部变量 插件, 整数型

.局部变量 根句柄, 整数型

.局部变量 键句柄, 整数型

.局部变量 文本数组, 文本型, , "0"

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


IE插件.全部删除 ()

打开注册表 (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\”, 键句柄)

键名 = 取空白文本 (255)

结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

' 图像列表_清除 (插件)

' 插件 = 图像列表_定制框架 (32, 32, 24, 0, 0)

' IE插件.发送信息 (4099, 1, 插件)

' 图像列表_固定颜色 (插件, IE插件.背景颜色)

.判断循环首 (结果 = 0)

    ' 本源码来自易语言资源网(www.5A5X.com)

    有效插件 = 到文本 (取数值注册项 (#本地机器, “SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\” + 键名 + “\Compatibility Flags”, ))

    插件名 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\”, )

    插件路径 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\InprocServer32\”, )

    .如果真 (有效插件 = “65536”)

        .判断开始 (隐藏安全插件.选中 = 真)

            .如果真 (寻找文本 (取公司名称 (插件路径, 1), “Microsoft”, , 假) = -1)

                .如果真 (插件名 ≠ “”)

                    .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                        得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                    .如果真结束

                    结果 = IE插件.插入表项 (, , , , , )

                    IE插件.置标题 (结果, , 插件名)

                    IE插件.置标题 (结果, 1, 键名)

                    IE插件.置标题 (结果, 2, 插件路径)

                    IE插件.置标题 (结果, 3, 取公司名称 (插件路径))

                    IE插件.置标题 (结果, 4, “ActiveX”)

                    .如果真 (文件是否存在 (插件路径) = 假)

                        IE插件.置标题 (结果, 5, “文件不存在”)

                    .如果真结束


                .如果真结束


            .如果真结束


        .默认

            .如果真 (文件是否存在 (插件路径))

                .如果真 (插件名 ≠ “”)

                    .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                        得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                    .如果真结束

                    结果 = IE插件.插入表项 (, , , , , )

                    IE插件.置标题 (结果, 0, 插件名)

                    IE插件.置标题 (结果, 1, 键名)

                    IE插件.置标题 (结果, 2, 插件路径)

                    IE插件.置标题 (结果, 3, 取公司名称 (插件路径))

                    IE插件.置标题 (结果, 4, “ActiveX”)

                    .如果真 (文件是否存在 (插件路径) = 假)

                        IE插件.置标题 (结果, 5, “文件不存在”)

                    .如果真结束


                .如果真结束


            .如果真结束


        .判断结束


    .如果真结束

    键名 = 取空白文本 (255)

    表项索引 = 表项索引 + 1

    结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环尾 ()

关闭注册表 (键句柄)

键名 = “”

结果 = 0

表项索引 = 0

打开注册表 (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects”, 键句柄)

键名 = 取空白文本 (255)

结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环首 (结果 = 0)

    插件名 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\”, )

    插件路径 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\InprocServer32\”, )

    .判断开始 (隐藏安全插件.选中 = 真)

        .如果真 (寻找文本 (取公司名称 (插件路径, 1), “Microsoft”, , 假) = -1)

            .如果真 (是否重复 (键名) = 假)

                .如果真 (插件路径 ≠ “”)

                    .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                        得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                    .如果真结束

                    结果 = IE插件.插入表项 (, , , , , )

                    IE插件.置标题 (结果, 0, 插件名)

                    IE插件.置标题 (结果, 1, 键名)

                    IE插件.置标题 (结果, 2, 插件路径)

                    IE插件.置标题 (结果, 3, 取公司名称 (插件路径))

                    IE插件.置标题 (结果, 4, “BHO”)

                    .如果真 (文件是否存在 (插件路径) = 假)

                        IE插件.置标题 (结果, 5, “文件不存在”)

                    .如果真结束


                .如果真结束


            .如果真结束


        .如果真结束


    .默认

        .如果真 (是否重复 (键名) = 假)

            .如果真 (插件路径 ≠ “”)

                .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                    得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                .如果真结束

                结果 = IE插件.插入表项 (, , , , , )

                .判断开始 (插件名 ≠ “”)

                    IE插件.置标题 (结果, 0, 插件名)

                .默认

                    插件名 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + 键名 + “\”, )

                .判断结束

                IE插件.置标题 (结果, 1, 键名)

                IE插件.置标题 (结果, 2, 插件路径)

                IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                IE插件.置标题 (结果, 4, “BHO”)

                .如果真 (文件是否存在 (插件路径) = 假)

                    IE插件.置标题 (结果, 5, “文件不存在”)

                .如果真结束


            .如果真结束


        .如果真结束


    .判断结束

    键名 = 取空白文本 (255)

    表项索引 = 表项索引 + 1

    结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环尾 ()

键名 = “”

结果 = 0

表项索引 = 0

打开注册表 (#HKEY_USERS, “S-1-5-21-606747145-602162358-1801674531-500\Software\Microsoft\Windows\CurrentVersion\Ext\Stats”, 键句柄)

键名 = 取空白文本 (255)

结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环首 (结果 = 0)

    插件名 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\”, )

    插件路径 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\InprocServer32\”, )

    .判断开始 (隐藏安全插件.选中 = 真)

        .如果真 (寻找文本 (取公司名称 (插件路径, 1), “Microsoft”, , 假) = -1)

            .如果真 (是否重复 (键名) = 假)

                .如果真 (插件路径 ≠ “”)

                    .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                        得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                    .如果真结束

                    结果 = IE插件.插入表项 (, , , , , )

                    .判断开始 (插件名 ≠ “”)

                        IE插件.置标题 (结果, 0, 插件名)

                    .默认

                        插件名 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + 键名 + “\”, )

                    .判断结束

                    IE插件.置标题 (结果, 1, 键名)

                    IE插件.置标题 (结果, 2, 插件路径)

                    IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                    IE插件.置标题 (结果, 4, “BHO”)

                    .如果真 (文件是否存在 (插件路径) = 假)

                        IE插件.置标题 (结果, 5, “文件不存在”)

                    .如果真结束


                .如果真结束


            .如果真结束


        .如果真结束


    .默认

        .如果真 (是否重复 (键名) = 假)

            .如果真 (插件路径 ≠ “”)

                .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                    得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                .如果真结束

                结果 = IE插件.插入表项 (, , , , , )

                .判断开始 (插件名 ≠ “”)

                    IE插件.置标题 (结果, 0, 插件名)

                .默认

                    插件名 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + 键名 + “\”, )

                .判断结束

                IE插件.置标题 (结果, 1, 键名)

                IE插件.置标题 (结果, 2, 插件路径)

                IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                IE插件.置标题 (结果, 4, “BHO”)

                .如果真 (文件是否存在 (插件路径) = 假)

                    IE插件.置标题 (结果, 5, “文件不存在”)

                .如果真结束


            .如果真结束


        .如果真结束


    .判断结束

    键名 = 取空白文本 (255)

    表项索引 = 表项索引 + 1

    结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环尾 ()

键名 = “”

结果 = 0

表项索引 = 0

打开注册表 (#HKEY_CURRENT_USER, “Software\Microsoft\Windows\CurrentVersion\Ext\Stats”, 键句柄)

键名 = 取空白文本 (255)

结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环首 (结果 = 0)

    插件名 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\”, )

    插件路径 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\InprocServer32\”, )

    .判断开始 (隐藏安全插件.选中 = 真)

        .如果真 (寻找文本 (取公司名称 (插件路径, 1), “Microsoft”, , 假) = -1)

            .如果真 (是否重复 (键名) = 假)

                .如果真 (插件路径 ≠ “”)

                    .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                        得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                    .如果真结束

                    结果 = IE插件.插入表项 (, , , , , )

                    .判断开始 (插件名 ≠ “”)

                        IE插件.置标题 (结果, 0, 插件名)

                    .默认

                        插件名 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + 键名 + “\”, )

                    .判断结束

                    IE插件.置标题 (结果, 1, 键名)

                    IE插件.置标题 (结果, 2, 插件路径)

                    IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                    IE插件.置标题 (结果, 4, “BHO”)

                    .如果真 (文件是否存在 (插件路径) = 假)

                        IE插件.置标题 (结果, 5, “文件不存在”)

                    .如果真结束


                .如果真结束


            .如果真结束


        .如果真结束


    .默认

        .如果真 (是否重复 (键名) = 假)

            .如果真 (插件路径 ≠ “”)

                .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                    得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                .如果真结束

                结果 = IE插件.插入表项 (, , , , , )

                .判断开始 (插件名 ≠ “”)

                    IE插件.置标题 (结果, 0, 插件名)

                .默认

                    插件名 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + 键名 + “\”, )

                .判断结束

                IE插件.置标题 (结果, 1, 键名)

                IE插件.置标题 (结果, 2, 插件路径)

                IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                IE插件.置标题 (结果, 4, “BHO”)

                .如果真 (文件是否存在 (插件路径) = 假)

                    IE插件.置标题 (结果, 5, “文件不存在”)

                .如果真结束


            .如果真结束


        .如果真结束


    .判断结束

    键名 = 取空白文本 (255)

    表项索引 = 表项索引 + 1

    结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环尾 ()

键名 = “”

结果 = 0

表项索引 = 0

打开注册表 (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Internet Explorer\Extensions”, 键句柄)

键名 = 取空白文本 (255)

结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环首 (结果 = 0)

    插件名 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\”, )

    插件路径 = 取文本注册项 (#根类, “CLSID\” + 键名 + “\InprocServer32\”, )

    .判断开始 (隐藏安全插件.选中 = 真)

        .如果真 (寻找文本 (取公司名称 (插件路径, 1), “Microsoft”, , 假) = -1)

            .如果真 (是否重复 (键名) = 假)

                .如果真 (键名 ≠ “”)

                    .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                        得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                    .如果真结束

                    结果 = IE插件.插入表项 (, , , , , )

                    .判断开始 (插件名 ≠ “”)

                        IE插件.置标题 (结果, 0, 插件名)

                    .默认

                        插件名 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + 键名 + “\”, )

                    .判断结束

                    IE插件.置标题 (结果, 1, 键名)

                    IE插件.置标题 (结果, 2, 插件路径)

                    IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                    IE插件.置标题 (结果, 4, “BHO”)

                    .如果真 (文件是否存在 (插件路径) = 假)

                        IE插件.置标题 (结果, 5, “文件不存在”)

                    .如果真结束


                .如果真结束


            .如果真结束


        .如果真结束


    .默认

        .如果真 (是否重复 (键名) = 假)

            .如果真 (键名 ≠ “”)

                .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                    得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                .如果真结束

                结果 = IE插件.插入表项 (, , , , , )

                .判断开始 (插件名 ≠ “”)

                    IE插件.置标题 (结果, 0, 插件名)

                .默认

                    插件名 = 取文本注册项 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + 键名 + “\”, )

                .判断结束

                IE插件.置标题 (结果, 1, 键名)

                IE插件.置标题 (结果, 2, 插件路径)

                IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                IE插件.置标题 (结果, 4, “BHO”)

                .如果真 (文件是否存在 (插件路径) = 假)

                    IE插件.置标题 (结果, 5, “文件不存在”)

                .如果真结束


            .如果真结束


        .如果真结束


    .判断结束

    键名 = 取空白文本 (255)

    表项索引 = 表项索引 + 1

    结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环尾 ()


' ======================== 开始枚举IE右键菜单

键名 = “”

结果 = 0

表项索引 = 0

打开注册表 (#HKEY_CURRENT_USER, “SOFTWARE\Microsoft\Internet Explorer\MenuExt”, 键句柄)

调试输出 (键句柄)

键名 = 取空白文本 (255)

结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

调试输出 (键名)


.判断循环首 (结果 = 0)

    插件名 = 键名

    插件路径 = 取文本注册项 (#现行用户, “SOFTWARE\Microsoft\Internet Explorer\MenuExt\” + 键名 + “\”, )

    .判断开始 (隐藏安全插件.选中 = 真)

        .如果真 (寻找文本 (取公司名称 (插件路径, 1), “Microsoft”, , 假) = -1)

            .如果真 (是否重复 (键名) = 假)

                .如果真 (键名 ≠ “”)

                    .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                        得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                    .如果真结束

                    结果 = IE插件.插入表项 (, , , , , )

                    IE插件.置标题 (结果, 0, 插件名)

                    IE插件.置标题 (结果, 1, 插件名)


                    .如果真 (寻找文本 (插件路径, “res://”, , 假) ≠ -1)

                        插件路径 = 取文本右边 (插件路径, 取文本长度 (插件路径) - 6)  ' 减去“res://”

                        插件路径 = 取文本左边 (插件路径, 寻找文本 (插件路径, “/”, , 假) - 1)  ' 去除右边的参数

                    .如果真结束

                    IE插件.置标题 (结果, 2, 插件路径)

                    IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                    IE插件.置标题 (结果, 4, “IE右键菜单”)

                    .如果真 (文件是否存在 (插件路径) = 假)

                        IE插件.置标题 (结果, 5, “文件不存在”)

                    .如果真结束


                .如果真结束


            .如果真结束


        .如果真结束


    .默认

        .如果真 (是否重复 (键名) = 假)

            .如果真 (键名 ≠ “”)

                .如果真 (得到文件信息 (插件路径, 128, 文件信息, 348, 256) = 0)

                    得到文件信息 (插件路径, 128, 文件信息, 348, 273)

                .如果真结束

                结果 = IE插件.插入表项 (, , , , , )

                IE插件.置标题 (结果, 0, 插件名)

                IE插件.置标题 (结果, 1, 插件名)


                .如果真 (寻找文本 (插件路径, “res://”, , 假) ≠ -1)

                    插件路径 = 取文本右边 (插件路径, 取文本长度 (插件路径) - 6)  ' 减去“res://”

                    插件路径 = 取文本左边 (插件路径, 寻找文本 (插件路径, “/”, , 假) - 1)  ' 去除右边的参数

                .如果真结束

                IE插件.置标题 (结果, 2, 插件路径)

                IE插件.置标题 (结果, 3, 取公司名称 (插件路径, 1))

                IE插件.置标题 (结果, 4, “IE右键菜单”)

                .如果真 (文件是否存在 (插件路径) = 假)

                    IE插件.置标题 (结果, 5, “文件不存在”)

                .如果真结束


            .如果真结束


        .如果真结束


    .判断结束

    键名 = 取空白文本 (255)

    表项索引 = 表项索引 + 1

    结果 = 枚举子键 (键句柄, 表项索引, 键名, 取文本长度 (键名))

.判断循环尾 ()




.子程序 取公司名称, 文本型

.参数 parth, 文本型

.参数 类型, 整数型, 可空, 1,公司名 2描述

.局部变量 temp1, 文本型

.局部变量 temp2, 文本型

.局部变量 buf, 字节集

.局部变量 vsize, 整数型

.局部变量 nsize, 整数型

.局部变量 temp4, 整数型

.局部变量 nbuf, 文本型

.局部变量 temp3, 字节集

.局部变量 buff, 文本型

.局部变量 txt, 文本型, , "2"


vsize = GetFileVersionInfoSize (parth, 0)

.如果真 (vsize > 0)

    buf = 取空白字节集 (vsize)

    GetFileVersionInfo (parth, 0, vsize, buf)

    .如果真 (VerQueryValue (buf, “\VarFileInfo\Translation”, temp4, nsize) = 0)

        返回 (“”)

    .如果真结束

    temp3 = 取空白字节集 (nsize)

    RtlMoveMemory_字节集 (temp3, temp4, nsize)

    nbuf = 取重复文本 (8 - 取文本长度 (取十六进制文本 (取字节集数据 (temp3, 3, ))), “0”) + 取十六进制文本 (取字节集数据 (temp3, 3, ))

    nbuf = 取文本右边 (nbuf, 4) + 取文本左边 (nbuf, 4)

    txt = { “\CompanyName”, “\FileDescription” }

    .如果真 (是否为空 (类型))

        类型 = 1

    .如果真结束

    .如果真 (VerQueryValue (buf, “\StringFileInfo\” + nbuf + txt [类型], temp4, nsize) ≠ 0)

        temp3 = 取空白字节集 (nsize)

        RtlMoveMemory_字节集 (temp3, temp4, nsize)

        temp1 = 取字节集数据 (temp3, #文本型, )

    .如果真结束


.如果真结束

返回 (temp1)


.子程序 是否重复, 逻辑型

.参数 键名, 文本型, , 用来对比

.局部变量 循环次数, 整数型


.计次循环首 (IE插件.取表项数 (), 循环次数)

    .如果真 (寻找文本 (IE插件.取标题 (循环次数 - 1, 1), 键名, , 真) ≠ -1)

        返回 (真)

    .如果真结束


.计次循环尾 ()

返回 (假)


.子程序 _删除插件文件_被选择


.如果真 (文件是否存在 (IE插件.取标题 (IE插件.现行选中项, 2)))

    .如果真 (删除文件 (IE插件.取标题 (IE插件.现行选中项, 2)) = 假)

        信息框 (“删除失败!”, #错误图标, )

    .如果真结束


.如果真结束



.子程序 _删除插件注册表_被选择

.局部变量 Ok, 逻辑型

.局部变量 CLSIDs, 文本型


CLSIDs = IE插件.取标题 (IE插件.现行选中项, 1)

Ok = 假

.如果真 (注册表是否存在 (#HKEY_CURRENT_USER, “SOFTWARE\Microsoft\Internet Explorer\MenuExt\” + CLSIDs))  ' IE右键菜单

    .判断开始 (删除注册表 (#现行用户, “SOFTWARE\Microsoft\Internet Explorer\MenuExt\” + CLSIDs) = 假)

        信息框 (“注册信息删除失败!”, #错误图标, , )

    .默认

        IE插件.删除表项 (IE插件.现行选中项)

        Ok = 真

    .判断结束

    ' 本源码来自易语言资源网(www.5A5X.com)

.如果真结束

.如果真 (注册表是否存在 (#HKEY_CLASSES_ROOT, “CLSID\” + CLSIDs))

    .判断开始 (删除注册表 (#根类, “CLSID\” + CLSIDs) = 假 且 Ok = 假)

        信息框 (“注册信息删除失败!”, #错误图标, , )

    .默认

        IE插件.删除表项 (IE插件.现行选中项)

        Ok = 真

    .判断结束


.如果真结束

.如果真 (注册表是否存在 (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\” + CLSIDs))

    .判断开始 (删除注册表 (#本地机器, “SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\” + CLSIDs) = 假 且 Ok = 假)

        信息框 (“注册信息删除失败!”, #错误图标, , )

    .默认

        IE插件.删除表项 (IE插件.现行选中项)

        Ok = 真

    .判断结束


.如果真结束

.如果真 (注册表是否存在 (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Internet Explorer\Extensions\” + CLSIDs))

    .判断开始 (删除注册表 (#本地机器, “SOFTWARE\Microsoft\Internet Explorer\Extensions\” + CLSIDs) = 假 且 Ok = 假)

        信息框 (“注册信息删除失败!”, #错误图标, , )

    .默认

        IE插件.删除表项 (IE插件.现行选中项)

        Ok = 真

    .判断结束


.如果真结束

.如果真 (注册表是否存在 (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + CLSIDs))

    .判断开始 (删除注册表 (#本地机器, “SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\” + CLSIDs) = 假 且 Ok = 假)

        信息框 (“注册信息删除失败!”, #错误图标, , )

    .默认

        IE插件.删除表项 (IE插件.现行选中项)

        Ok = 真

    .判断结束


.如果真结束

.如果真 (注册表是否存在 (#HKEY_USERS, “S-1-5-21-606747145-602162358-1801674531-500\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\” + CLSIDs))

    .判断开始 (删除注册表 (#所有用户, “S-1-5-21-606747145-602162358-1801674531-500\Software\Microsoft\Windows\CurrentVersion\Ext\Stats\” + CLSIDs) = 假 且 Ok = 假)

        信息框 (“注册信息删除失败!”, #错误图标, , )

    .默认

        IE插件.删除表项 (IE插件.现行选中项)

        Ok = 真

    .判断结束


.如果真结束

.如果真 (注册表是否存在 (#HKEY_CURRENT_USER, “Software\Microsoft\Windows\CurrentVersion\Ext\Stats\” + CLSIDs))

    .判断开始 (删除注册表 (#本地机器, “Software\Microsoft\Windows\CurrentVersion\Ext\Stats\” + CLSIDs) = 假 且 Ok = 假)

        信息框 (“注册信息删除失败!”, #错误图标, , )

    .默认

        IE插件.删除表项 (IE插件.现行选中项)

    .判断结束


.如果真结束



.子程序 注册表是否存在, 逻辑型

.参数 根目录, 整数型

.参数 路径, 文本型

.局部变量 柄, 整数型


打开注册表 (根目录, 路径, 柄)

.如果真 (柄 = 0)

    返回 (假)

.如果真结束

关闭注册表 (柄)

返回 (真)


.子程序 删除注册表, 逻辑型, , 删除注册表项目(注意,该项目所包含地所有项目都将被删除)

.参数 根目录, 整数型

.参数 路径, 文本型

.局部变量 数组, 文本型, , "0"


清除数组 (数组)

生成子项目数组 (根目录, 路径, 数组)

返回 (删除子项目数组 (数组))


.子程序 生成子项目数组

.参数 根目录, 整数型

.参数 路径, 文本型

.参数 数组, 文本型, 数组, 首次调用必须(清除数组)

.局部变量 a, 文本型, , "0"

.局部变量 i, 整数型


枚举注册表子项 (根目录, 路径, a, 真)

.如果 (取数组成员数 (a) > 0)

    加入成员 (数组, 到文本 (根目录) + #分割符 + 路径)

    .计次循环首 (取数组成员数 (a), i)

        .如果 (路径 = “”)

            生成子项目数组 (根目录, a [i], 数组)

        .否则

            生成子项目数组 (根目录, 路径 + “\” + a [i], 数组)

        .如果结束


    .计次循环尾 ()

.否则

    加入成员 (数组, 到文本 (根目录) + #分割符 + 路径)

.如果结束



.子程序 删除子项目数组, 逻辑型

.参数 数组, 文本型, 数组

.局部变量 i, 整数型

.局部变量 y, 文本型, , "2"


.变量循环首 (取数组成员数 (数组), 1, -1, i)

    y = 分割文本 (数组 [i], #分割符, )

    .如果真 (删除注册项 (到整数 (y [1]), y [2]) = 假)

        返回 (假)

    .如果真结束


.变量循环尾 ()

返回 (真)


.子程序 枚举注册表子项, 整数型, , 枚举注册表指定项目地所有子项,并返回子项个数。返回-1表示失败,请用(取注册表操作错误信息)取得详细地错误信息

.参数 根目录, 整数型, , 请参考易语言注册表操作函数中地根目录参数。

.参数 路径, 文本型

.参数 子项列表, 文本型, 数组, 该参数用来返回子项列表数组,返回时,该数组将被子项填充。

.参数 是否继续枚举, 逻辑型, , 提供一个变量用来控制是否继续枚举过程,如果需要停止枚举过程,请将该变量置为假即可。

.局部变量 i

.局部变量 项名, 文本型

.局部变量 结果

.局部变量 句柄

.局部变量 柄


是否继续枚举 = 真

清除数组 (子项列表)

句柄 = 常量转换 (根目录)

打开注册表 (句柄, 路径, 柄)

.如果真 (柄 = 0)  ' 失败

    ' 错误文本 = “打开注册表项目错误,请确定你具有该操作的权限!”

    返回 (-1)

.如果真结束

' --下面开始枚举

i = 0

项名 = 取空白文本 (265)

结果 = 枚举子键 (柄, i, 项名, 取文本长度 (项名))

.判断循环首 (结果 = 0)

    .如果 (是否继续枚举 = 真)

        加入成员 (子项列表, 项名)

        i = i + 1

        项名 = 取空白文本 (265)

        结果 = 枚举子键 (柄, i, 项名, 取文本长度 (项名))

    .否则

        跳出循环 ()

    .如果结束


.判断循环尾 ()

关闭注册表 (柄)

返回 (取数组成员数 (子项列表))


.子程序 常量转换, 整数型

.参数 根目录

.局部变量 句柄


.判断开始 (根目录 = #根类)

    句柄 = 2147483648

.判断 (根目录 = #现行用户)

    句柄 = 2147483649

.判断 (根目录 = #本地机器)

    句柄 = 2147483650

.判断 (根目录 = #所有用户)

    句柄 = 2147483651

.默认

    句柄 = 根目录

.判断结束

返回 (句柄)


.子程序 _去除只读隐藏系统属性cj_被选择


置文件属性 (IE插件.取标题 (IE插件.现行选中项, 2), 0)


.子程序 _效验数字签名cj_被选择




.子程序 _查看属性cj_被选择


查看属性 (IE插件.取标题 (IE插件.现行选中项, 2))


.子程序 _定位到资源管理器cj_被选择


文件定位 (IE插件.取标题 (IE插件.现行选中项, 2))


.子程序 查看属性, 整数型

.参数 文件名, 文本型

.局部变量 info, SHELLEXECUTEINFOA

.局部变量 文件信息, 整数型

.局部变量 返回值, 整数型


info.结构大小 = 60

info.标志 = 1100

info.窗口句柄 = 取窗口句柄 ()

info.操作命令 = “properties”

info.文件名 = 文件名

info.应用程序参数 = “”

info.目录 = “”

info.显示标志 = 0

info.实例句柄 = 0

info.项目标识符列表结构指针 = 0

文件信息 = ShellExecuteEx (info)

返回 (info.实例句柄)


.子程序 文件定位

.参数 路径, 文本型


ShellExecute (0, “open”, “explorer.exe”, “/select,” + 路径, “”, 10)


.子程序 _IE插件_右键单击表项


.判断开始 (IE插件.现行选中项 = -1)

    连续赋值 (真, 删除插件注册表.禁止, 去除只读隐藏系统属性cj.禁止, 效验数字签名cj.禁止, 定位到资源管理器cj.禁止, 查看属性cj.禁止, 删除插件文件.禁止)

.默认

    连续赋值 (假, 删除插件注册表.禁止, 去除只读隐藏系统属性cj.禁止, 效验数字签名cj.禁止, 定位到资源管理器cj.禁止, 查看属性cj.禁止, 删除插件文件.禁止)

    刷新文件版本 (IE插件.取标题 (IE插件.现行选中项, 2))

    刷新文件属性 (IE插件.取标题 (IE插件.现行选中项, 2))

.判断结束

弹出菜单 (插件, , )



.子程序 _IE插件_表项被激活


_定位到资源管理器cj_被选择 ()


.子程序 _IE插件_左键单击表项


刷新文件版本 (IE插件.取标题 (IE插件.现行选中项, 2))

刷新文件属性 (IE插件.取标题 (IE插件.现行选中项, 2))


.子程序 刷新文件版本

.参数 路径, 文本型

.局部变量 版本, 版本信息_


取PE文件版本 (路径, 版本)

超级列表框_描述.置标题 (0, 1, 版本.公司名)

超级列表框_描述.置标题 (1, 1, 版本.描述)

超级列表框_描述.置标题 (2, 1, 版本.版权)

超级列表框_描述.置标题 (3, 1, 版本.文件版本)

超级列表框_描述.置标题 (4, 1, 版本.内部名称)

超级列表框_描述.置标题 (5, 1, 版本.原文件名)

超级列表框_描述.置标题 (6, 1, 版本.产品名称)

超级列表框_描述.置标题 (7, 1, 版本.产品版本)


.子程序 取PE文件版本

.参数 参数_路径, 文本型

.参数 参数_版本信息, 版本信息_, 参考

.局部变量 局部_版本信息, 字节集

.局部变量 局部_缓冲区长度, 整数型

.局部变量 局部_缓冲区地址, 整数型

.局部变量 局部_缓冲区地址的长度, 整数型

.局部变量 局部_原始内存地址, 字节集

.局部变量 局部_版本信息位置, 文本型

.局部变量 局部_信息, 文本型


局部_信息 = 参数_路径

局部_缓冲区长度 = GetFileVersionInfoSize (局部_信息, 0)

.如果真 (局部_缓冲区长度 = 0)

    返回 ()

.如果真结束

局部_版本信息 = 取空白字节集 (局部_缓冲区长度)

GetFileVersionInfo (局部_信息, 0, 局部_缓冲区长度, 局部_版本信息)

.如果真 (VerQueryValue (局部_版本信息, “\VarFileInfo\Translation”, 局部_缓冲区地址, 局部_缓冲区地址的长度) = 0)

    返回 ()

.如果真结束

局部_原始内存地址 = 取空白字节集 (局部_缓冲区地址的长度)

MoveMemory (局部_原始内存地址, 局部_缓冲区地址, 局部_缓冲区地址的长度)

局部_版本信息位置 = 取重复文本 (8 - 取文本长度 (取十六进制文本 (取字节集数据 (局部_原始内存地址, 3, ))), “0”) + 取十六进制文本 (取字节集数据 (局部_原始内存地址, 3, ))

局部_版本信息位置 = 取文本右边 (局部_版本信息位置, 4) + 取文本左边 (局部_版本信息位置, 4)

.变量循环首 (1, 12, 1, 局部_缓冲区长度)

    .如果真 (VerQueryValue (局部_版本信息, “\StringFileInfo\” + 局部_版本信息位置 + “\” + 多项选择 (局部_缓冲区长度, “Comments”, “CompanyName”, “FileDescription”, “FileVersion”, “InternalName”, “LegalCopyright”, “LegalTrademarks”, “OriginalFilename”, “PrivateBuild”, “ProductName”, “ProductVersion”, “SpecialBuild”), 局部_缓冲区地址, 局部_缓冲区地址的长度) ≠ 0)

        局部_原始内存地址 = 取空白字节集 (局部_缓冲区地址的长度)

        MoveMemory (局部_原始内存地址, 局部_缓冲区地址, 局部_缓冲区地址的长度)

        局部_信息 = 取字节集数据 (局部_原始内存地址, 10, )

        .如果真 (局部_信息 ≠ “”)

            .如果真 (局部_缓冲区长度 = 2)

                参数_版本信息.公司名 = 局部_信息

            .如果真结束

            .如果真 (局部_缓冲区长度 = 3)

                参数_版本信息.描述 = 局部_信息

            .如果真结束

            .如果真 (局部_缓冲区长度 = 4)

                参数_版本信息.文件版本 = 局部_信息

            .如果真结束

            .如果真 (局部_缓冲区长度 = 5)

                参数_版本信息.内部名称 = 局部_信息

            .如果真结束

            .如果真 (局部_缓冲区长度 = 6)

                参数_版本信息.版权 = 局部_信息

            .如果真结束

            .如果真 (局部_缓冲区长度 = 8)

                参数_版本信息.原文件名 = 局部_信息

            .如果真结束

            .如果真 (局部_缓冲区长度 = 10)

                参数_版本信息.产品名称 = 局部_信息

            .如果真结束

            .如果真 (局部_缓冲区长度 = 11)

                参数_版本信息.产品版本 = 局部_信息

            .如果真结束


        .如果真结束


    .如果真结束


.变量循环尾 ()


.子程序 刷新文件属性

.参数 路径, 文本型

.局部变量 属性, 文件属性结构


属性 = 取文件详细属性 (路径)

超级列表框_属性.置标题 (0, 1, 文件_格式化字节 (属性.大小))

超级列表框_属性.置标题 (1, 1, 文件_格式化字节 (属性.占用空间))

超级列表框_属性.置标题 (2, 1, 时间_格式化时间 (属性.创建时间))

超级列表框_属性.置标题 (3, 1, 时间_格式化时间 (属性.最后修改时间))

超级列表框_属性.置标题 (4, 1, 时间_格式化时间 (属性.最后访问时间))

超级列表框_属性.置标题 (5, 1, 到文本 (属性.只读))

超级列表框_属性.置标题 (6, 1, 到文本 (属性.隐藏))

超级列表框_属性.置标题 (7, 1, 到文本 (属性.系统文件))

超级列表框_属性.置标题 (8, 1, 到文本 (属性.存档))


.子程序 文件_格式化字节, 文本型, , 返回指定格式,比如:1024 返回 1.0KB 。小于2.97G以下用些命令。

.参数 文件大小, 整数型

.局部变量 sBuffer, 文本型

.局部变量 Leng


sBuffer = 取空白文本 (100)

数值到格式化字节_ (文件大小, sBuffer, 100)

.判断开始 (sBuffer = “0 字节”)

    sBuffer = “0”

.判断 (寻找文本 (sBuffer, “字节”, , 假) ≠ 0)

    sBuffer = 子文本替换 (sBuffer, “字节”, “B”, , , 真)

.默认


.判断结束

返回 (sBuffer)


.子程序 时间_格式化时间, 文本型

.参数 t, 日期时间型, 可空

.参数 format, 文本型, 可空, 默认:“yyyy/MM/dd HH:mm:ss” 注意大小写.

.局部变量 Buff, 文本型

.局部变量 st, 短整数型, , "8"


Buff = 取空白文本 (50)

.如果 (是否为空 (t))

    GetLocalTime (st)

.否则

    VariantTimeToSystemTime (t, st)

.如果结束

GetDateFormat (0, 0, st, 选择 (format ≠ “”, format, “yyyy/MM/dd HH:mm:ss”), Buff, 50)

GetTimeFormat (0, 0, st, Buff, Buff, 50)

返回 (Buff)


标签:                   喜欢:收藏