.版本 2
.支持库 spec
.支持库 xplib
.支持库 eAPI

.程序集 窗口程序集_启动窗口
.程序集变量 注册码, 文本型

.子程序 __启动窗口_创建完毕
.局部变量 临时字符串, 文本型
.局部变量 初始字符串长度, 整数型
.局部变量 局_计次, 整数型
.局部变量 取出的字符, 文本型
.局部变量 整数字符串, 文本型

_启动窗口.标题 = _启动窗口.标题 + #版本号
调试输出 (到时间 (“123”))

图片框1.图片 = #banner2

XP风格 (1)

' 判断目录是否存在,不存在则创建

.如果 (文件是否存在 (取运行目录 () + “\cmars配置文件”))

.否则
    创建目录 (取运行目录 () + “\cmars配置文件”)
.如果结束



' 判断是否存在存放注册码的文本
' 若不存在,则创建,若存在,则写入内容
.判断开始 (文件是否存在 (取运行目录 () + “/cmars配置文件/regnum.txt”))
    编辑框_注册码.内容 = 到文本 (读入文件 (取运行目录 () + “/cmars配置文件/regnum.txt”))  ' ' 邮箱显示出来

.默认
    写到文件 (取运行目录 () + “/cmars配置文件/regnum.txt”, 到字节集 (“此处填写注册码!”))  ' ' 若不存在则创建配置文件 并复提示语
    编辑框_注册码.内容 = 到文本 (读入文件 (取运行目录 () + “/cmars配置文件/regnum.txt”))

.判断结束
' 获取机器码
编辑框_机器码.内容 = 取机器码 ()
调试输出 (编辑框_机器码.内容)
调试输出 (到整数 (编辑框_机器码.内容))

' 算出注册码 以便下一步验证
临时字符串 = 编辑框_机器码.内容  ' CDDE1A7E3EFDBFEBFBFF000306C3
初始字符串长度 = 取文本长度 (临时字符串)
调试输出 (初始字符串长度)  ' 28
.计次循环首 (初始字符串长度, 局_计次)
    取出的字符 = 取文本左边 (临时字符串, 1)
    .如果 (寻找文本 (“1234567890”, 取出的字符, , 假) ≠ -1)  ' 说明是数值
        整数字符串 = 整数字符串 + 取出的字符
    .否则

    .如果结束
    临时字符串 = 取文本右边 (临时字符串, 取文本长度 (临时字符串) - 1)
    调试输出 (临时字符串)
.计次循环尾 ()
调试输出 (整数字符串)
注册码 = 到文本 (到整数 (到整数 (整数字符串) × 5.2 + 1314))   ’算出注册码的规则 自己可以定义
调试输出 (注册码)

.子程序 取机器码, 文本型
.局部变量 输入内容, 文本型
.局部变量 输出内容, 文本型
.局部变量 文本长度, 整数型
.局部变量 i, 整数型
.局部变量 临时变量I, 整数型
.局部变量 临时变量J, 整数型
.局部变量 转换后文本, 文本型
.局部变量 临时, 字节集
.局部变量 网卡地址, 网卡信息, , "0"
.局部变量 网卡mac, 文本型
.局部变量 CPU信息, CPU信息
.局部变量 CPU, 文本型
.局部变量 大写字母, 文本型, , "26"
.局部变量 小写字母, 文本型, , "26"
.局部变量 数字, 文本型, , "26"
.局部变量 计次, 整数型
.局部变量 总计, 文本型

数字 = { “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” }
大写字母 = { “A”, “B”, “C”, “D”, “E”, “F”, “G”, “H”, “I”, “J”, “K”, “L”, “M”, “N”, “O”, “P”, “Q”, “R”, “S”, “T”, “U”, “V”, “W”, “X”, “Y”, “Z” }
小写字母 = { “a”, “b”, “c”, “d”, “e”, “f”, “g”, “h”, “i”, “j”, “k”, “l”, “m”, “n”, “o”, “p”, “q”, “r”, “s”, “t”, “u”, “v”, “w”, “x”, “y”, “z” }
取CPU信息 (CPU信息)
CPU = 取文本左边 (CPU信息.序列号, 18)
网卡地址 = 取网卡信息列表 ()
.判断开始 (取数组成员数 (网卡地址) ≥ 1)
    网卡mac = 网卡地址 [1].物理地址
.默认
    网卡mac = “10-11-11-11-11-11”
.判断结束

输入内容 = 子文本替换 (网卡mac, “-”, “”, , , 真) + 子文本替换 (CPU, “-”, “”, , , 真)
文本长度 = 取文本长度 (输入内容)
.计次循环首 (文本长度, i)
    转换后文本 = 取文本中间 (输入内容, i, 1)
    .如果真 (转换后文本 ≥ “A” 且 转换后文本 ≤ “Z” 或 转换后文本 ≥ “a” 且 转换后文本 ≤ “z”)
        转换后文本 = “”
    .如果真结束
    输出内容 = 输出内容 + 转换后文本
.计次循环尾 ()

.计次循环首 (取文本长度 (输入内容), 临时变量I)
    .计次循环首 (取数组成员数 (大写字母), 临时变量J)
        .如果真 (取文本中间 (输入内容, 临时变量I, 1) = 大写字母 [临时变量J] 或 取文本中间 (输入内容, 临时变量I, 1) = 小写字母 [临时变量J])
            编辑框1.加入文本 (数字 [临时变量J])
        .如果真结束
        ' 本源码来自易语言资源网(www.5A5X.com)
    .计次循环尾 ()
.计次循环尾 ()

临时 = 到字节集 (子文本替换 (网卡mac, “-”, “”, , , 真) + 子文本替换 (CPU, “-”, “”, , , 真))
.计次循环首 (4, 计次)
    .如果真 (临时 [计次] ≠ 45 且 临时 [计次] < 48 或 临时 [计次] > 57)
        到循环尾 ()
    .如果真结束
    .如果真 (临时 [计次] = 48)
        临时 [计次] = 74
        到循环尾 ()
    .如果真结束
    .如果真 (临时 [计次] = 45)
        临时 [计次] = 77
        到循环尾 ()
    .如果真结束
    临时 [计次] = 临时 [计次] + 16
.计次循环尾 ()
返回 (到文本 (临时))


.子程序 _按钮1_被单击

置剪辑板文本 (编辑框_机器码.内容)


.子程序 _按钮2_被单击
.局部变量 注册码原始字符串, 文本型
.局部变量 得到的注册码, 文本型
.局部变量 加密的QQ字符串, 文本型
.局部变量 解密后的代理QQ, 文本型

注册码原始字符串 = 删首尾空 (编辑框_注册码.内容)  ' ++++++++++++++++++++++++++++++++++++++++++++
' 注册码原始字符串 = “CMARS8599529603406082649”
' CMARS4304562307406082649
得到的注册码 = 取文本右边 (注册码原始字符串, 取文本长度 (注册码))
.如果 (得到的注册码 = 到文本 (注册码))
    ' 解密代理的QQ
    加密的QQ字符串 = 取指定内容 (注册码原始字符串, “CMARS”, 注册码)
    调试输出 (加密的QQ字符串)
    解密后的代理QQ = 到文本 (到长整数 (加密的QQ字符串) - 5201314916)
    调试输出 (“解密后的:”)
    调试输出 (解密后的代理QQ)
    .如果 (到长整数 (解密后的代理QQ) ≤ 0)  ' 如果没有加入客服QQ 则默认官方的QQ号码
        解密后的代理QQ = “9381037”
        调试输出 (“<=0”)

    .否则


    .如果结束
    ' 赋值给全局变量
    全局_代理QQ = 解密后的代理QQ
    调试输出 (“代理的QQ:” + 全局_代理QQ)
    _按钮3_被单击 ()  ' 记住正确的注册码
    载入 (_启动窗口2, , 假)
    销毁 ()
.否则
    信息框 (“注册码不正确,请联系客服获取注册码,客服QQ:9381037!”, 0, , )
.如果结束


.子程序 _按钮3_被单击

写到文件 (取运行目录 () + “/cmars配置文件/regnum.txt”, 到字节集 (删首尾空 (编辑框_注册码.内容)))




.子程序 取指定内容, 文本型
.参数 完整内容, 文本型
.参数 左边文本, 文本型
.参数 右边文本, 文本型
.局部变量 临时位置, 整数型
.局部变量 总长度, 整数型
.局部变量 临时内容, 文本型

总长度 = 取文本长度 (完整内容)
临时位置 = 寻找文本 (完整内容, 左边文本, , 假) + 取文本长度 (左边文本)
临时内容 = 取文本中间 (完整内容, 临时位置, 总长度)
总长度 = 取文本长度 (临时内容)
临时位置 = 寻找文本 (临时内容, 右边文本, , 假) - 1
临时内容 = 取文本中间 (临时内容, 1, 临时位置)
返回 (临时内容)