额。当初搞这个是为了减少程序体积和升级和以后管理用的,也是写到一个可以用的阶段
现在的功能,可以检测版本更新。然后检测环境DPI等等。可以根据笔记内容下载并且zc大漠,里面关于微云笔记解析和大漠的东西不展示了,论坛有很多哦,没啥难度,就是一个思路!
还有这个(程序_提示退出)就是信息框 然后结束 自己封装一个很简单!
.版本 2
.程序集 程序集_验证
.程序集变量 集_验证信息, 类_json
.子程序 验证_取属性, 文本型, 公开
.参数 属性名, 文本型
返回 (集_验证信息.取通用属性 (属性名, ))
.子程序 验证_初始化, , 公开
.参数 参_Url, 文本型
.参数 参_当前版本, 文本型, 可空, 参_检测更新,参_当前版本、绑定关系
.参数 参_检测更新, 逻辑型, 可空, 参_检测更新,参_当前版本、绑定关系
.参数 参_环境检测, 逻辑型, 可空, 管理员权限,DPI,禁止重复运行
.参数 参_zc大漠, 逻辑型, 可空, 根据Json内容下载并更新大漠
.如果真 (集_验证信息.解析 (微云_取微云笔记 (参_Url), , ) = 假)
程序_提示退出 (“获取验证信息失败!”)
.如果真结束
.如果真 (参_检测更新 = 真 且 参_当前版本 ≠ “”)
验证_检测更新 (参_当前版本)
.如果真结束
.如果真 (参_环境检测 = 真)
验证_环境检测 ()
.如果真结束
.如果真 (参_zc大漠 = 真)
验证_zc大漠_系统 ()
验证_zc大漠_收费 ()
.如果真结束
返回 ()
.子程序 验证_检测更新
.参数 当前版本, 文本型
.局部变量 局_版本比较, 整数型
.局部变量 局_脚本名称, 文本型
.局部变量 局_脚本文件, 字节集
.局部变量 局_是否更新, 逻辑型
局_版本比较 = 文件_版本比较 (当前版本, 集_验证信息.取通用属性 (“ver”, ))
.如果真 (局_版本比较 ≥ 0) ' 无需更新
返回 ()
.如果真结束
局_是否更新 = 系统_信息框Ex (“是否更新 Ver:” + 集_验证信息.取通用属性 (“ver”, ), 文本_替换 (集_验证信息.取通用属性 (“notice”, ), , , , “/n”, #换行符, , , , , , , , ), 1000 × 10, 4) = 6
.如果真 (局_是否更新 = 假)
返回 ()
.如果真结束
局_脚本名称 = 集_验证信息.取通用属性 (“name”, ) + “V” + 集_验证信息.取通用属性 (“ver”, ) + “.exe”
局_脚本文件 = 网页_访问_对象 (集_验证信息.取通用属性 (“url”, ), , , , , , , , , , , , , , , , , , )
写到文件 (局_脚本名称, 局_脚本文件)
系统_以管理员模式创建进程 (取运行目录 () + “\” + 局_脚本名称)
程序_删除自身 ()
.子程序 验证_环境检测
.判断开始 (系统_取系统DPI_zc表版 () ≠ 100)
程序_提示退出 (“请设置系统DPI为100!”)
.判断 (系统_是否为管理员 () = 假)
程序_提示退出 (“请以管理员方式运行!”)
.默认
程序_禁止重复运行 (集_验证信息.取通用属性 (“name”, ), 真, “请勿重复运行”, #信息图标, 真, )
.判断结束
.子程序 验证_zc大漠_系统
.局部变量 局_大漠路径, 文本型
.局部变量 局_是否下载, 逻辑型
.局部变量 局_临时大漠, dmsoft
局_大漠路径 = 目录_取system32目录 () + “dm.dll”
' 判断大漠是否可以下载
.判断开始 (校验_取crc32 (读入文件 (局_大漠路径), ) ≠ 集_验证信息.取通用属性 (“dmmd5”, ) 且 文件_是否存在 (局_大漠路径) = 真)
输出调试文本 (“非指定大模,重新下载!”)
文件_删除 (局_大漠路径)
局_是否下载 = 真
.判断 (文件_是否存在 (局_大漠路径) = 假)
输出调试文本 (“大漠不存在,下载!”)
局_是否下载 = 真
.默认
输出调试文本 (“大漠正常,无需下载!”)
.判断结束
' 开始下载大漠
.如果真 (局_是否下载 = 真)
写到文件 (局_大漠路径, 网页_访问_对象 (集_验证信息.取通用属性 (“dmurl”, ), , , , , , , , , , , , , , , , , , ))
.如果真结束
' zc大漠
运行 (“regsvr32 -s” + 局_大漠路径, 假, )
局_临时大漠.创建 ()
' 判断是否创建成功
.判断开始 (局_临时大漠.Ver () = “”)
程序_提示退出 (“zcdm系统失败!”)
.默认
输出调试文本 (“zcdm系统成功->ver:” + 局_临时大漠.Ver ())
.判断结束
返回 ()
.子程序 验证_zc大漠_收费
.局部变量 局_临时大漠, dmsoft
.局部变量 局_zc结果, 整数型
局_临时大漠.创建 ()
.如果真 (局_临时大漠.Ver () = “3.1233”)
返回 ()
.如果真结束
局_zc结果 = 局_临时大漠.Reg (集_验证信息.取通用属性 (“dmcode”, ), 集_验证信息.取通用属性 (“dmver”, ))
.判断开始 (局_zc结果 = -1)
程序_提示退出 (“请检查网络连接”)
.判断 (局_zc结果 = -2)
程序_提示退出 (“请以管理员方式运行”)
.判断 (局_zc结果 = 0)
程序_提示退出 (“失败 (未知错误)”)
.判断 (局_zc结果 = 4)
程序_提示退出 (“zc码错误”)
.判断 (局_zc结果 = 5)
程序_提示退出 (“当前机器未zc”)
置剪辑板文本 (局_临时大漠.GetMachineCode ())
程序_提示退出 (“机器码已保存到剪切板” + #换行符 + “失败代码->” + 到文本 (局_zc结果) + #换行符 + “机器码->” + 局_临时大漠.GetMachineCode ())
.默认
输出调试文本 (“zcdm收费成功”)
.判断结束
|