个人简介
个人主页:九黎aj
♂️幸福源自奋斗,平凡造就不凡
如果文章对你有用,麻烦关注点赞收藏走一波,感谢支持!
欢迎订阅我的专栏:autojs
python
QQ群:698307198
因为它免费并且功能多
注册地址http://useryz.91shenfan.com/index.php?user/login&refurl=http://useryz.91shenfan.com/
话不多说,直接上代码
local 变量_Token = "在这里输入"
local 变量_项目名称 = ""
local 变量_机器码 = ""
local 变量_注册码 = ""
local 变量_解绑密码 = "123456"
local 变量_Ver = "V2.0"
local 变量_登录状态 = "未登录"
local 变量_剩余分钟 = -1
local 变量_访问令牌 = ""
local 变量_超时重登 = false
local 变量_错误信息 = ""
local 变量_试用登陆时间 = 0
local 变量_最后登陆时间 = 0
local 变量_注册码信息 = {}
local 变量_错误次数 = 0
local MAX_DIFFTIME = 60
local MIN_EXPDIFFTIME, MAX_EXPDIFFTIME = 70, 90
local g_IntSingleMapRunCount = 0
local g_IntCheckDiffTime = MAX_DIFFTIME
local g_IntMaxErrorCount = 5
local g_IntErrorACcount = 0
local varThread = {exitFlag = false, exitMainThread = false}
_ENV["函数_初始化注册"] = function(projName, code)
变量_项目名称 = projName
变量_注册码 = code
varThread.exitMainThread = true
end
_ENV["函数_检测项目更新"] = function(项目名称, 版本号)
local arg = "prog=%s&ver=%s"
arg = string.format(arg, 项目名称, 版本号)
local bool, ret = HttpGetData(arg)
print("检测项目更新 ret = " .. ret)
if string.find(ret, "ver", 1) ~= nil then
local upDataInfo = jsonLib.decode(ret)
print(upDataInfo.ver, upDataInfo.path, upDataInfo.info, upDataInfo.forced)
if upDataInfo.ver ~= nil then
if _ENV["UI_提示对话框"](upDataInfo.info) == false then
print("更新取消")
return 0
end
function progress(pos)
toast("下载进度:" .. pos, 0, 0, 30)
print("下载进度:" .. pos)
end
filePath = splitStr(upDataInfo.path, "/")
fileUrl = string.format("http://apicloudupload.91shenfan.com/cloudupload.php?method=download&access_token=%s&filename=%s&path=%s", 变量_Token, filePath[2], filePath[1])
fileSaveName = getWorkPath() .. "/update.lr"
print(fileUrl, fileSaveName)
if downloadFile(fileUrl, fileSaveName, progress) == 0 then
sleep(100)
print("下载完成,安装中")
io.input(fileSaveName)
local hData1 = io.read(1)
local hData2 = io.read(1)
print(hData1, hData2)
io.close()
if hData1 == "P" and hData2 == "K" then
print("下载文件正常")
installLrPkg(fileSaveName)
restartScript()
else
print("下载文件异常,不安装")
print("下载文件异常,不安装")
end
else
print("下载异常,下次更新")
toast("下载异常,下次更新", 0, 0, 14)
end
end
end
end
_ENV["UI_提示对话框"] = function(tips)
local isUi = true
local isUpdata = false
function onClickOK()
isUpdata = true
isUi = false
end
function onClickExit()
isUpdata = false
isUi = false
end
ui.newLayout("uimsg", 600)
ui.setTitleText("uimsg", "更新提示")
ui.setTitleBackground("uimsg", "#ff0AB50F")
ui.addTextView("uimsg", "txQQ", "作者VX/QQ: ", -1)
ui.setTextColor("txQQ", "#ff3399FF")
ui.setGravity("txQQ", 17)
ui.newRow("uimsg", "row1")
ui.addTextView("uimsg", "txUpdata", "更新日志:", -1)
ui.newRow("uimsg", "row1")
ui.addTextView("uimsg", "tvId", tips)
ui.newRow("uimsg", "row_Btn")
ui.addButton("uimsg", "btnOK", "更新", -2, 60)
ui.setOnClick("btnOK", "onClickOK()")
ui.setBackground("btnOK", "#ff07E613")
ui.addButton("uimsg", "btnExit", "取消", -2, 60)
ui.setOnClick("btnExit", "onClickExit()")
ui.setBackground("btnExit", "#ffCB1011")
ui.show("uimsg", false)
local loginFile = getWorkPath() .. "/tips.txt"
ui.loadProfile(loginFile)
while isUi do
sleep(100)
end
local ret = ui.getData()
ui.dismiss("uimsg")
print(ret)
return isUpdata
end
_ENV["函数_注册登录"] = function()
local arg = "flag=注册码登录&机器码=%s&注册码=%s&项目名称=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, 变量_项目名称)
local bool, ret = HttpGetData(arg)
if bool then
local arr = splitStr(ret, "|")
local arrLen = #arr
if arrLen == 3 and arr[1] == "登录成功" then
变量_登录状态 = "注册登录"
变量_剩余分钟 = arr[2]
变量_访问令牌 = arr[3]
toast("卡密剩余时间:" .. 变量_剩余分钟 .. "分钟", 0, 0, 12)
变量_最后登陆时间 = TimeNow()
Unit.State.isTimeOut = false
return true
end
end
变量_错误信息 = ret
return false
end
_ENV["函数_试用登录"] = function()
local arg = "flag=试用&机器码=%s&项目名称=%s"
arg = string.format(arg, 变量_机器码, 变量_项目名称)
local bool, ret = HttpGetData(arg)
print("试用登录 ret = " .. ret)
if bool and ret == "成功" then
变量_登录状态 = "试用登录"
Unit.State.isTimeOut = false
_ENV["函数_获取剩余分钟"]()
return true
elseif ret == "操作失败:此试用模式不支持TryLogin函数(不支持普通试用模式),请使用试用登陆扩展模式." then
arg = "flag=注册码试用扩展模式&机器码=%s&项目名称=%s"
arg = string.format(arg, 变量_机器码, 变量_项目名称)
local bool, ret = HttpGetData(arg)
if bool then
local arr = splitStr(ret, "|")
local arrLen = #arr
if arrLen == 3 and arr[1] == "登录成功" then
变量_登录状态 = "注册登录"
变量_访问令牌 = arr[2]
变量_注册码 = arr[3]
return true
end
end
end
变量_错误信息 = ret
return false
end
_ENV["函数_注册解绑"] = function()
local arg = "flag=客户端解绑注册码&机器码=%s&注册码=%s&项目名称=%s&解绑密码=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, 变量_项目名称, 变量_解绑密码)
local bool, ret = HttpGetData(arg)
if bool then
return true
end
变量_错误信息 = ret
return false
end
_ENV["函数_注册解绑Ex"] = function(codeValue)
local arg = "flag=客户端解绑注册码&机器码=%s&注册码=%s&项目名称=SZY&解绑密码=123456"
arg = string.format(arg, 变量_机器码, codeValue)
local bool, ret = HttpGetData(arg)
if bool then
return true
end
变量_错误信息 = ret
return false
end
_ENV["函数_验证注册码详细信息"] = function()
if 变量_登录状态 == "试用登录" then
Unit.State.UserTimeOutData = "试用中"
end
local arg = "flag=注册码验证&机器码=%s&注册码=%s&项目名称=%s&访问令牌=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, 变量_项目名称, 变量_访问令牌)
local bool, ret = HttpGetData(arg)
print(bool, ret)
if bool then
变量_注册码信息 = splitStr(ret, "|")
if tonumber(#变量_注册码信息) == 4 then
Unit.State.UserTimeOutData = 变量_注册码信息[2]
return 变量_注册码信息
end
end
变量_错误信息 = ret
return ret
end
_ENV["函数_获取剩余分钟"] = function()
local arg
if 变量_登录状态 == "注册登录" then
arg = "flag=查询注册码时间&机器码=%s&注册码=%s&项目名称=%s&访问令牌=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, 变量_项目名称, 变量_访问令牌)
elseif 变量_登录状态 == "试用登录" then
arg = "flag=试用时间&机器码=%s&项目名称=%s"
arg = string.format(arg, 变量_机器码, 变量_项目名称)
else
变量_错误信息 = "操作失败:尚未登录无法获取剩余分钟"
return -1, 变量_错误信息
end
local bool, ret = HttpGetData(arg)
print("ret = " .. ret)
if bool and math.tointeger(ret) ~= nil then
return tonumber(ret), "成功"
end
变量_错误信息 = ret
return -1, 变量_错误信息
end
_ENV["函数_退出注册码登录"] = function()
local arg = "flag=注册码退出&注册码=%s&访问令牌=%s"
arg = string.format(arg, 变量_注册码, 变量_访问令牌)
local bool, ret = HttpGetData(arg)
if bool and ret == "操作成功" then
return true
end
变量_错误信息 = ret
return false
end
_ENV["函数_获取注册码备注"] = function()
local arg = "flag=注册码获取备注&机器码=%s&注册码=%s&项目名称=%s&访问令牌=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, 变量_项目名称, 变量_访问令牌)
local bool, ret = HttpGetData(arg)
if bool then
if ret == "" then
return "操作失败:备注为空"
else
return ret
end
end
变量_错误信息 = ret
return ret
end
_ENV["函数_设置注册码备注"] = function(内容)
local arg = "flag=注册码设置备注&机器码=%s&注册码=%s&项目名称=%s&访问令牌=%s&备注=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, 变量_项目名称, 变量_访问令牌, 内容)
local bool, ret = HttpGetData(arg)
if bool and ret == "设置成功" then
return true
end
变量_错误信息 = ret
return false
end
_ENV["函数_获取项目公告"] = function()
local arg = "flag=获取项目公告&项目名称=" .. 变量_项目名称
local bool, ret = HttpGetData(arg)
if bool then
if ret == "" then
return "操作失败:项目公告为空"
else
return ret
end
end
变量_错误信息 = ret
return ret
end
_ENV["函数_获取自定义数据"] = function(key值)
local arg = "flag=获取项目键名称值&机器码=%s&注册码=%s&项目名称=%s&访问令牌=%s&项目键名称=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, 变量_项目名称, 变量_访问令牌, key值)
local bool, ret = HttpGetData(arg)
if bool then
if ret == "" then
return "操作失败:自定义数据为空"
else
return ret
end
end
变量_错误信息 = ret
return ret
end
_ENV["函数_获取自定义数据Ex"] = function(strProjName, key值)
local arg = "flag=获取项目键名称值&机器码=%s&注册码=%s&项目名称=%s&访问令牌=%s&项目键名称=%s"
arg = string.format(arg, 变量_机器码, 变量_注册码, strProjName, 变量_访问令牌, key值)
local bool, ret = HttpGetData(arg)
if bool then
if ret == "" then
return "操作失败:自定义数据为空"
else
return ret
end
end
变量_错误信息 = ret
return ret
end
_ENV["函数_以卡充卡"] = function(新卡, 老卡)
local arg = "flag=以卡充卡&新卡=%s&老卡=%s"
arg = string.format(arg, 新卡, 老卡)
local bool, ret = HttpGetData(arg)
if bool and ret == "OK" then
return true
end
变量_错误信息 = ret
return false
end
_ENV["函数_启动心跳"] = function()
varThread.exitFlag = false
varThread.exitMainThread = false
beginThread(_ENV["线程_心跳验证"], 变量_机器码, 变量_注册码, 变量_项目名称, 变量_访问令牌, 变量_超时重登)
end
_ENV["线程_心跳验证"] = function(变量_机器码, 变量_注册码, 变量_项目名称, 变量_访问令牌, 变量_超时重登)
if 变量_登录状态 == "试用登录" then
_ENV["心跳间隔"] = math.random(600, 900)
else
_ENV["心跳间隔"] = math.random(3600, 5400)
end
print("心跳线程已经启动")
_ENV["局部_允许失败次数"] = 60
_ENV["局部_首次通讯"] = true
while true do
_ENV["局部_失败重试间隔"] = math.ceil(_ENV["心跳间隔"] / 2)
if _ENV["局部_首次通讯"] then
_ENV["局部_等待时间"] = TimeNow() + math.random(300, 600)
else
_ENV["局部_等待时间"] = TimeNow() + _ENV["心跳间隔"]
end
print("等待时间 = " .. _ENV["局部_等待时间"])
local iCount = 0
while _ENV["局部_等待时间"] > TimeNow() do
sleep(1000)
if varThread.exitFlag then
return 0
end
iCount = iCount + 1
if iCount == 60 then
print("循环时间 = " .. TimeNow())
iCount = 0
end
end
print("获取卡密时间")
_ENV["局部_当前通讯次数"] = 0
while true do
if _ENV["局部_允许失败次数"] > _ENV["局部_当前通讯次数"] then
print(" ------------------- 开始取服务器时间 ------------------- ")
_ENV["局部_剩余分钟"], 变量_错误信息 = _ENV["函数_获取剩余分钟"]()
printEx(_ENV["局部_剩余分钟"], 变量_错误信息)
if 0 >= _ENV["局部_剩余分钟"] then
varThread.exitMainThread = true
if 变量_登录状态 == "注册登录" then
if 变量_错误信息 == nil then
变量_错误信息 = "卡密已过期"
end
elseif 变量_错误信息 == nil then
变量_错误信息 = "试用时间不足"
end
return 0
end
if _ENV["局部_剩余分钟"] ~= -1 and 变量_错误信息 == "" then
if 0 >= _ENV["局部_剩余分钟"] then
变量_错误信息 = "卡密已过期"
varThread.exitMainThread = true
break
end
_ENV["局部_首次通讯"] = false
varThread.exitMainThread = false
break
elseif 变量_超时重登 and 变量_错误信息 == "操作失败:注册码已经下线." then
if _ENV["函数_执行注册登录"]() then
varThread.exitMainThread = false
break
end
elseif string.find(变量_错误信息, "操作失败") ~= nil then
print(变量_错误信息)
varThread.exitMainThread = true
end
end
if _ENV["局部_当前通讯次数"] > _ENV["局部_允许失败次数"] then
print(变量_错误信息)
varThread.exitMainThread = true
end
for i = 0, _ENV["局部_失败重试间隔"] do
sleep(1000)
if varThread.exitFlag then
return 0
end
end
_ENV["局部_当前通讯次数"] = _ENV["局部_当前通讯次数"] + 1
if varThread.exitFlag then
return 0
end
end
end
end
_ENV["函数_验证软件是否到期"] = function()
local diffTime = _ENV["TimeDiff分"](变量_最后登陆时间)
if diffTime > g_IntCheckDiffTime then
变量_最后登陆时间 = TimeNow()
local cardTime, strError = _ENV["函数_获取剩余分钟"]()
if cardTime > 0 then
g_IntErrorACcount = 0
Unit.State.isTimeOut = false
g_IntCheckDiffTime = MAX_DIFFTIME
return false
elseif cardTime <= 0 and strError == "成功" then
varThread.exitMainThread = true
if 变量_登录状态 == "注册登录" then
if 变量_错误信息 == nil then
变量_错误信息 = "卡密已过期"
end
elseif 变量_错误信息 == nil then
变量_错误信息 = "试用时间不足"
end
Unit.State.isTimeOut = true
return true
elseif cardTime <= 0 and string.find(strError, "操作失败", 1) ~= nil then
Unit.State.isTimeOut = true
变量_错误信息 = strError
return true
else
g_IntErrorACcount = g_IntErrorACcount + 1
if g_IntErrorACcount > g_IntMaxErrorCount then
Unit.State.isTimeOut = true
变量_错误信息 = strError
return true
end
g_IntCheckDiffTime = rnd(MIN_EXPDIFFTIME, MAX_EXPDIFFTIME)
Unit.State.isTimeOut = false
return false
end
elseif Unit.State.isTimeOut then
return true
else
return false
end
end
_ENV["函数_激活结束线程状态"] = function()
varThread.exitFlag = true
end
_ENV["函数_取主线程结束状态"] = function()
return varThread.exitMainThread
end
_ENV["函数_获取错误信息"] = function()
return 变量_错误信息
end
function HttpGetData(arg)
local data = ""
for i = 1, 3 do
urlData = string.format("http://get.91shenfan.com/api/%s?%s", 变量_Token, arg)
data, code = httpGet(urlData, 10)
if string.find(data, "操作失败", 1) ~= nil then
return false, data
end
if string.find(data, "html>", 1) ~= nil then
sleep(rnd(800, 1200))
end
end
return true, data
end
_ENV["UI_用户登陆"] = function()
local isUi = true
function onClickLogin()
ui.setEnable("btnLogin", false)
fileName = g_RunConfigFileName .. "/szylogin.txt"
ui.saveProfile(fileName)
userData = readFile(fileName)
print(userData)
userData = jsonLib.decode(userData)
变量_注册码 = userData.regCode
print(变量_注册码)
if string.len(变量_注册码) ~= 32 then
toast("卡密长度非32位,请检查卡密是否错误或者有多余字符!", 0, 0, 14)
elseif string.len(变量_项目名称) == 0 then
变量_项目名称 = Unit.State.ProjectName1
if _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
isUi = false
else
lastError = _ENV["函数_获取错误信息"]()
if string.find(lastError, "不正确", 1) ~= nil then
变量_项目名称 = Unit.State.ProjectName2
if _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
isUi = false
else
lastError = _ENV["函数_获取错误信息"]()
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
else
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
end
elseif _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
isUi = false
else
lastError = _ENV["函数_获取错误信息"]()
if string.find(lastError, "不正确", 1) ~= nil then
if 变量_项目名称 == Unit.State.ProjectName1 then
变量_项目名称 = Unit.State.ProjectName2
else
变量_项目名称 = Unit.State.ProjectName1
end
if _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
isUi = false
else
lastError = _ENV["函数_获取错误信息"]()
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
else
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
end
ui.setEnable("btnLogin", true)
end
function onClickTryLogin()
ui.setEnable("btnTryLogin", false)
fileName = g_RunConfigFileName .. "/szylogin.txt"
变量_项目名称 = "测试项目"
if _ENV["函数_试用登录"]() then
toast("试用登录登陆成功!", 0, 0, 12)
isUi = false
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
else
lastError = _ENV["函数_获取错误信息"]()
toast(lastError, 0, 0, 12)
变量_错误次数 = 变量_错误次数 + 1
end
ui.setEnable("btnTryLogin", true)
end
function onClickUnBindMac()
fileName = g_RunConfigFileName .. "/szylogin.txt"
ui.saveProfile(fileName)
userData = readFile(fileName)
print(userData)
userData = jsonLib.decode(userData)
变量_注册码 = userData.regCode
print(变量_注册码)
if string.len(变量_注册码) == 32 then
if _ENV["函数_注册解绑Ex"](变量_注册码) then
toast("卡密解绑成功", 0, 0, 14)
else
lastError = _ENV["函数_获取错误信息"]()
toast("卡密解绑失败,原因:" .. lastError, 0, 0, 14)
end
ui.setBackground("btnUnBindMac", "#FF808080")
ui.setEnable("btnUnBindMac", false)
else
toast("卡密长度非32位,请检查卡密是否错误或者有多余字符!", 0, 0, 14)
ui.setEnable("btnUnBindMac", true)
end
end
function onClickExit()
ui.saveProfile(g_RunConfigFileName .. "/szylogin.txt")
isUi = false
end
变量_项目名称, 变量_机器码 = _ENV["Read项目信息"]()
if string.len(变量_机器码) == 0 then
local devStr = string.format("%s-%d", getDeviceId(), tickCount())
变量_机器码 = MD5(devStr)
print("新创建 变量_机器码", 变量_机器码)
else
print("本地保存 变量_机器码", 变量_机器码)
end
ui.newLayout("cloud", -2)
titleText = string.format("测试项目&%s&%s", Unit.State.ProjectName2, Unit.State.ProjectVer)
ui.setTitleText("cloud", titleText)
ui.addTextView("cloud", "txQQ", "作者VX/QQ: ", -1)
ui.setTextColor("txQQ", "#ff3399FF")
ui.setGravity("txQQ", 17)
ui.newRow("cloud", "row1")
ui.addTextView("cloud", "tvId", "卡密:", 100)
ui.addEditText("cloud", "regCode", "", 550)
ui.newRow("cloud", "row1")
ui.addButton("cloud", "btnLogin", "登陆", -2, 60)
ui.setOnClick("btnLogin", "onClickLogin()")
ui.addButton("cloud", "btnTryLogin", "试用", -2, 60)
ui.setOnClick("btnTryLogin", "onClickTryLogin()")
ui.addButton("cloud", "btnExit", "退出", -2, 60)
ui.setOnClick("btnExit", "onClickExit()")
ui.setBackground("btnExit", "#FFB60000")
ui.newRow("cloud", "row1")
ui.addButton("cloud", "btnUnBindMac", "解绑", -2, 60)
ui.setOnClick("btnUnBindMac", "onClickUnBindMac()")
ui.addTextView("cloud", "strTips", "<--解绑已经绑定机器的卡密", -2)
ui.setBackground("btnUnBindMac", "#FFFCDE16")
ui.show("cloud", false)
local loginFile = g_RunConfigFileName .. "/szylogin.txt"
if fileExist(loginFile) == false then
loginFile = getWorkPath() .. "/szylogin.txt"
if fileExist(loginFile) == false then
loginFile = g_RunConfigFileName .. "/szylogin.txt"
end
end
ui.loadProfile(loginFile)
while isUi do
sleep(100)
if 变量_错误次数 > 5 then
toast("单日失败次数过多,请稍后再试!", 0, 0, 12)
sleep(1000)
exitScript()
return false
end
end
if Unit.State.isTimeOut == false then
_ENV["函数_验证注册码详细信息"]()
end
local ret = ui.getData()
ui.dismiss("cloud")
return ret
end
_ENV["免卡密界面启动"] = function()
变量_项目名称, 变量_机器码 = _ENV["Read项目信息"]()
fileName = g_RunConfigFileName .. "/szylogin.txt"
userData = readFile(fileName)
print("userData = " .. userData)
userData = jsonLib.decode(userData)
变量_注册码 = userData.regCode
print(变量_注册码)
if string.len(变量_注册码) ~= 32 then
toast("卡密长度非32位,请检查卡密是否错误或者有多余字符!", 0, 0, 14)
elseif string.len(变量_项目名称) == 0 then
变量_项目名称 = Unit.State.ProjectName1
if _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
return true
else
lastError = _ENV["函数_获取错误信息"]()
if string.find(lastError, "不正确", 1) ~= nil then
变量_项目名称 = Unit.State.ProjectName2
if _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
return true
else
lastError = _ENV["函数_获取错误信息"]()
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
else
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
end
elseif _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
return true
else
lastError = _ENV["函数_获取错误信息"]()
if string.find(lastError, "不正确", 1) ~= nil then
if 变量_项目名称 == Unit.State.ProjectName1 then
变量_项目名称 = Unit.State.ProjectName2
else
变量_项目名称 = Unit.State.ProjectName1
end
if _ENV["函数_注册登录"]() then
_ENV["Save项目信息"](变量_项目名称, 变量_机器码)
return true
else
lastError = _ENV["函数_获取错误信息"]()
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
else
toast(lastError, 0, 0, 14)
变量_错误次数 = 变量_错误次数 + 1
end
end
return false
end
_ENV["Save项目信息"] = function(项目名称, 机器码)
local fileName = g_RunConfigFileName .. "/szyProjInfo.txt"
local saveData = string.format("%s|%s", 项目名称, 机器码)
isOK = writeFile(fileName, saveData)
if isOK then
print("保存成功")
else
print("保存失败")
end
end
_ENV["Read项目信息"] = function()
local projName, macID = "", ""
local fileName = g_RunConfigFileName .. "/szyProjInfo.txt"
resultData = readFile(fileName)
local dataArr = splitStr(resultData, "|")
if #dataArr == 2 then
projName, macID = dataArr[1], dataArr[2]
if projName == Unit.State.ProjectName1 then
return projName, macID
end
if projName == Unit.State.ProjectName2 then
return projName, macID
end
end
print("文件不存在")
return projName, macID
end
以上就是全部内容了,有需要更多的可以加入交流群
群号:698307198
如果没有通过,可以联系群主拉你进qun