神烦论坛

 找回密码
 立即注册
查看: 12735|回复: 4

百宝云注册码系统[接入教程]-按键精灵

[复制链接]

231

主题

381

帖子

2145

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2145
发表于 2017-7-24 11:25:29 | 显示全部楼层 |阅读模式

[引导][末尾有视频教程]

[下载]:[相关接入文件下载]
百宝云注册码系统_接入例子_精简版.Q (893.64 KB, 下载次数: 981)
百宝云注册码系统_接入例子_详细版.Q (900.81 KB, 下载次数: 960)
:脚本文件(*.Q)附件中已包含相关插件文件,如果不在原例子上修改,记得释放出来带走。

[导入]:[命令库文件\插件文件]
下载的文件需要复制到按键根目录下
百宝云注册码系统_接入例子.Q\按键精灵2014\QMScript
:直接把(*.Q)文件拖拽到按键精灵软件界面的脚本列表中放开也可以导入。
:脚本文件(*.Q)附件中已包含相关插件文件,如果不在原例子上修改,记得释放出来带走。
注册码接入文件.png
导入文件.png

[接入]:[接入代码使用介绍]
接入代码.png
如何查询云应用访问Tokenhttp://bbs.91shenfan.com/thread-534-1-1.html
关于心跳线程在验证系统中的作用:http://bbs.91shenfan.com/thread-824-1-1.html

[代码]:[需要用到的命令与代码语句]
初始化:对命令库中的变量进行赋值,登记注册码验证所需的必要信息。
  1. Call 执行注册插件()
  2. '插件版本获取
  3. TracePrint qsx.PluginVersion()
  4. '参数初始化
  5. 变量_token = "d8ecf56875e36cec76f0d729c387bd71"
  6. 变量_项目名称 = "测试项目"
  7. 变量_注册码 = Form1.输入框_注册码.Text//获取界面[注册码]输入框内容
  8. 变量_解绑密码 = "123456"
  9. //初始化
  10. ret = qsx.InitDll(变量_token, 变量_项目名称)
  11. TracePrint ret
  12. If ret = 1 then
  13.     TracePrint "初始化成功"
  14. Else
  15.     Call qsx.GetLastErrorInfo(errinfo)
  16.     TracePrint "初始化失败,错误信息" & errinfo
  17.     EndScript
  18. End If
  19. Sub 执行注册插件()
  20.     '注册插件,以便调用百宝云命令功能
  21.     Dim 插件路径, 插件名称
  22.     插件路径 = "C:\qsx"
  23.     插件名称 = "WebZCM_COM.dll"
  24.     Call Plugin.File.CreateFolder(插件路径)'创建目录,把相关的文件都放这里,规范好。
  25.     PutAttachment 插件路径, 插件名称'释放插件
  26.     PutAttachment "plugin", "RegDll.dll"'释放RegDll.dll插件到按键官方插件目录中
  27.     Call Plugin.RegDll.Reg(插件路径 & "" & 插件名称)'注册插件
  28.     '创建对象
  29.     Set qsx = CreateObject("qsx.regcode")
  30.     '判断类型确认是否注册插件成功,9=Automation 对象
  31.     If VarType(qsx) <> 9 Then
  32.         Set ws = createobject("Wscript.Shell")
  33.         RunApp "regsvr32 " & 插件路径 & "" & 插件名称 & " /s"
  34.         Delay 1500
  35.         // 再判断插件是否注册成功
  36.         Set qsx = CreateObject("qsx.regcode")
  37.         If VarType(qsx) <> 9 Then
  38.             // 这时,已经确认插件注册失败了。 弹出一些调试信息,以供分析.
  39.             MessageBox "百宝云插件注册失败,当前类型:" & VarType(qsx)
  40.             EndScript
  41.         End If
  42.     End If
  43. End Sub
复制代码
名称是什么,用于什么
变量_Token应用通讯密钥,用于确认通讯的应用身份标识。[如何查询云应用访问Token]
变量_项目名称应用项目名称,用于确认通讯的应用中指向哪个项目。
变量_注册码登录授权密钥,用于确认登录用户的使用权限与期限。
Form1.输入框_注册码.Text按键命令,读取界面配置,正式发布“注册码”是从界面上的输入框获取。
变量_解绑密码注册解绑密码,用于解绑操作提交参数,在绑定机器码模式下解绑后才可更换机器重新使用。
解绑规则:留空,则验证机器码,通过则本机解绑;而异地解绑必须要有解绑密码

注册登录:在执行以上必要参数赋值后,即可执行“ret = qsx.LoginRegCode(注册码)”
  1. //注册登录
  2. ret = qsx.LoginRegCode(变量_注册码)
  3. TracePrint ret
  4. If ret = 1 then
  5.     TracePrint "登陆成功"
  6. Else
  7.     Call qsx.GetLastErrorInfo(errinfo)
  8.     TracePrint "登陆失败,错误信息" & errinfo
  9.     EndScript
  10. End If
  11. //获取注册码详细信息
  12. Call qsx.CheckRegCode(result)
  13. TracePrint result
复制代码
名称是什么,用于什么
ret = qsx.LoginRegCode(变量_注册码)插件命令名称,注册码登录命令,用于执行获取登录用户的使用授权与期限。
返回值:成功:1,失败:0
Call qsx.GetLastErrorInfo(errinfo)
TracePrint "登陆失败,错误信息" & errinfo
插件命令名称,用于赋值记录通讯请求失败后的错误信息,以便知晓失败原因。
Call qsx.CheckRegCode(result)
TracePrint result
插件命令名称,用于获取注册码详细信息。
返回值:字符串类型
成功:激活时间|到期时间|登陆时间|验证时间
失败:操作失败:xxxxx

开启心跳线程:在“注册登录”成功后,需要“函数_执行心跳检测”。[心跳的作用]
  1. //启动心跳线程
  2. //启动心跳线程
  3. //启动心跳线程,重要事情说三遍
  4. //用来检查是否到期,以及是否异地登录被顶号。(参数必须是常量)
  5. 线程ID = BeginThread(函数_执行心跳检测(600))//间隔600秒心跳一次,10分钟。
复制代码
名称是什么,用于什么
线程ID = BeginThread(函数_执行心跳检测(600))多线程命令启动线程,用于间隔时间内获取一次注册码剩余时间,判断注册码状态。
函数为:执行心跳线程
传入参数:600,为心跳间隔,单位秒
补充:心跳线程内部会负责脚本运行期间的状态监测。
剩余时间判断,到期则停止脚本;
异地登录判断,确认则停止脚本;
网络异常判断,确认则停止脚本。
  1. Sub 函数_执行心跳检测(间隔)
  2.     Set qsx = CreateObject("qsx.regcode")
  3.     //主线脚本以子线程方式启动一个Sub,由这个Sub里调用 函数_执行心跳检测。
  4.     //主线脚本以子线程方式启动一个Sub,由这个Sub里调用 函数_执行心跳检测。
  5.     //主线脚本以子线程方式启动一个Sub,由这个Sub里调用 函数_执行心跳检测,重要事情说三遍。
  6.     //必须开启一个单独线程,来监控是否到期,为了不影响主线循环,所以单独分出来
  7.     //由 qsx.函数_获取共享变量剩余分钟() 变量值来给主线判定是否到期
  8.     //约束间隔范围,不可低于10分钟,不可高于30分钟。
  9.     //验证心跳间隔参数
  10.     If not IsNumeric(间隔)  Then
  11.         间隔 = 600
  12.     Else
  13.         间隔 = Int(间隔)
  14.     End If
  15.     If CInt(间隔) > 1800 Then
  16.         间隔 = 1800
  17.     ElseIf CInt(间隔) < 600 Then
  18.         间隔 = 600
  19.     End If
  20.     Dim 局部_允许失败次数, 局部_失败重试间隔, 局部_首次通讯
  21.     局部_允许失败次数 = 30
  22.     局部_失败重试间隔
  23.     局部_首次通讯 = True
  24.     Dim 局部_等待时间, 局部_剩余分钟
  25.     Do
  26.         局部_失败重试间隔 = 间隔 \ 2
  27.         //建议间隔10-30分钟,访问一次服务器,原因例子中已写明,没看的请返回看
  28.         If 局部_首次通讯 Then
  29.             局部_等待时间 = DateAdd("s", 180, Now())//首次3分钟间隔,以此检测一次是否存在重复登录行为
  30.         Else
  31.             局部_等待时间 = DateAdd("s", 间隔, Now())//单位:秒
  32.         End If
  33.         Do
  34.             Delay 3000
  35.         Loop Until DateDiff("s", 局部_等待时间, Now()) > 0
  36.         //与服务器通讯,获取剩余时间或状态
  37.         For i = 0 To 局部_允许失败次数
  38.             局部_剩余分钟 = qsx.GetRegCodeTime()
  39.             TracePrint "子线程获取剩余分钟:" & 局部_剩余分钟
  40.             If not IsNumeric(局部_剩余分钟)  Then //剩余时间非数字
  41.                 TracePrint "错误信息:" & qsx.GetLastErrorInfo()
  42.             Else
  43.                 局部_剩余分钟 = Int(局部_剩余分钟)//类型转换
  44.                 If 局部_剩余分钟 = 0 Then
  45.                     TracePrint "注册码到期"
  46.                     //注册码到期,完全结束脚本
  47.                     ExitScript//全部结束,包括子线程
  48.                 ElseIf 局部_剩余分钟 < 0 Then
  49.                     //剩余时间异常
  50.                     TracePrint "错误信息:" & qsx.GetLastErrorInfo()
  51.                 ElseIf 局部_剩余分钟 > 0 Then
  52.                     //正常,未到期
  53.                     Exit For//离开for循环,开始正常等待
  54.                 End If
  55.             End If
  56.             //通讯异常,服务器繁忙,并发数占满导致请求超时:等待短暂时间后重试
  57.             TracePrint "通讯异常"
  58.             TracePrint 变量_错误信息
  59.             //次数超出,离开尝试通讯
  60.             If i = 局部_允许失败次数 Then
  61.                 TracePrint "通讯失败次数超出"
  62.                 ExitScript//尝试次数超出,停止
  63.             End If
  64.             //通讯失败,等待,再尝试
  65.             For i1 = 0 To 局部_失败重试间隔
  66.                 Delay 1000
  67.             Next
  68.             局部_失败重试间隔 = 局部_失败重试间隔 \ 2
  69.             If 局部_失败重试间隔 < 60 Then 局部_失败重试间隔 = 60//间隔不可小于60秒
  70.         Next
  71.     Loop
  72. End Sub
复制代码

[工具]:[百宝云_注册码_调试工具.exe]
调试工具.png
百宝云注册码系统[调试工具]:http://bbs.91shenfan.com/thread-723-1-1.html

[视频][建议预览图文教程后再看视频]
回复

使用道具 举报

0

主题

9

帖子

43

积分

一级圣斗士

Rank: 1

积分
43
发表于 2017-8-4 20:42:04 | 显示全部楼层
好东西啊,必须顶起来,谢谢分享哦!
回复 支持 反对

使用道具 举报

0

主题

1

帖子

11

积分

一级圣斗士

Rank: 1

积分
11
发表于 2017-8-18 14:20:24 | 显示全部楼层
楼上你说的都对,
回复 支持 反对

使用道具 举报

0

主题

19

帖子

48

积分

一级圣斗士

Rank: 1

积分
48
发表于 2018-12-4 16:37:17 | 显示全部楼层
有没有手机按键的教程
回复 支持 反对

使用道具 举报

0

主题

1

帖子

15

积分

一级圣斗士

Rank: 1

积分
15
发表于 2021-9-21 00:36:30 | 显示全部楼层
为什么我执行后,一直提示无效的过程调用或参数: 'VF3BCD7CA2CB2D2DD91BCBDBFA7C491D5B96A65757378756D',    好像是启动线程,调用心跳检测有问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|神烦论坛 ( 苏ICP备18043773号 )

GMT+8, 2024-4-25 16:29

Powered by bby! X3.4

© 2015-2024 baibaoyun

快速回复 返回顶部 返回列表