kongklc 发表于 2018-7-27 10:42

一段易语言判断软件到期时间的代码(从网络获取北京时间),有需要的可以拿走。




.子程序 _主窗口_创建完毕
.局部变量 返回值, 文本型
.局部变量 调用地址, 文本型
.局部变量 调用参数, 文本型
.局部变量 配置内容, 文本型

线程_启动 (&到期时间判断)   ' 主窗口创建完毕开始启动到期时间判断

.子程序 到期时间判断
.局部变量 时间间隔, 整数型
.局部变量 北京时间文本, 文本型
.局部变量 正则, 正则表达式


' 到期时间判断
.循环判断首 ()
    线程_启动 (&获取规范时间)
    北京时间 = 获取规范时间 ()
    时间间隔 = 取时间间隔 (到时间 (软件时间), 北京时间, #分钟)    '判断软件时间与北京时间的时间间隔,如果没有间隔或者值为负证明软件到期了.其中软件时间可以自定义也可以用网络验证来返回时间.
    调试输出 (时间间隔)
    调试输出 (北京时间)
    调试输出 (软件时间)
    .判断开始 (时间间隔 > 0)

      ' 信息框 (“欢迎使用!”, 0, , )
    .默认


      信息框 (“程序已到期!”, #信息图标, “提示:”, )' 当前时间比北京时间晚,软件已经到期,执行关闭程序操作
      结束 ()   '到期就关闭程序了
    .判断结束
    延迟 (300000)' 延迟5分钟后在执行一次,5分钟判断一次是否已到时


.循环判断尾 (时间间隔 > 0)
调试输出 (取时间间隔 (到时间 (软件时间), 取现行时间 (), #分钟))

.子程序 获取规范时间, 日期时间型, 公开, 返回日期时间型数据
.局部变量 正则, 正则表达式
.局部变量 返回文本, 文本型
.局部变量 搜索, 搜索结果

返回文本 = 到文本 (HTTP读文件 (“http://cgi.im.qq.com/cgi-bin/cgi_svrtime”))'从网络地址获得时间,防止修改本机时间来获得功能,下面的正则是用来取正确的时间格式的.
正则.创建 (“(\d{4})-(\d{2})-(\d{2}) (\d{2}):(\d{2}):(\d{2})”, )
搜索 = 正则.搜索 (返回文本, 1, )
返回 (到时间 (搜索.取子匹配文本 (返回文本, 1, ) + “-” + 搜索.取子匹配文本 (返回文本, 2, ) + “-” + 搜索.取子匹配文本 (返回文本, 3, ) + “-” + 搜索.取子匹配文本 (返回文本, 4, ) + “-” + 搜索.取子匹配文本 (返回文本, 5, ) + “-” + 搜索.取子匹配文本 (返回文本, 6, )))





如果代码对你有用,帮忙给个免费评分.谢谢

阿木100 发表于 2018-7-27 10:56

感谢分享

jim19 发表于 2018-7-27 11:26

这种也不保险啊,本地假设个服务器,改个hosts就绕过了,最好在自己服务器上然后把时间加个密, 这样强度会稍微高一点

安小懒 发表于 2018-7-27 11:45

看不懂 唉

zhaolisheng 发表于 2018-7-27 11:50

这个代码应该不错。

0772boy 发表于 2018-8-6 09:27

重点是这个:http://cgi.im.qq.com/cgi-bin/cgi_svrtime

Yim 发表于 2018-8-6 10:54

感谢分享

goldengod 发表于 2018-8-6 11:00

感谢分享. gayhub上有代码分享么?:lol

loumou 发表于 2018-8-10 10:39


这个代码应该不错。

亦旧先生 发表于 2018-8-10 11:14

感谢分享
页: [1]
查看完整版本: 一段易语言判断软件到期时间的代码(从网络获取北京时间),有需要的可以拿走。