神烦论坛

 找回密码
 立即注册
查看: 11387|回复: 10

百宝云注册码系统 - 按键 COM插件接入示例

[复制链接]

86

主题

195

帖子

2026

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2026
发表于 2016-6-27 00:29:52 | 显示全部楼层 |阅读模式
按键 COM插件接入示例



按键 COM插件接入 <百宝云注册码系统> 步骤
接入前准备:拷贝下面代码到自己的项目里
  1. ////////////////////////////////功能封装区域//////////////////////////////
  2. Dim         全局_百宝云token
  3. dim         全局_项目名称
  4. DimEnv         全局_注册码
  5. Dim         全局_文件版本


  6. Function 初始化(token, 项目名)
  7.         全局_是否初始化 = False
  8.         全局_百宝云token = token
  9.         全局_项目名称 = 项目名
  10.         全局_文件版本 = "1.0.0.0"
  11.         
  12.         set 全局COM插件 = CreateObject("qsx.regcode")
  13.         ret = 全局COM插件.InitDll(全局_百宝云token, 全局_项目名称)
  14.         If ret = 1 Then
  15.                 TracePrint "初始化 成功"
  16.                 初始化 = True
  17.         Else
  18.                 TracePrint "初始化 失败 错误信息 " & 获取最后错误信息()
  19.                 初始化 = False
  20.         End If
  21. End Function


  22. Function 注册码登陆自动验证(注册码)
  23.     ret = 全局COM插件.LoginRegCodeAuto(注册码)
  24.         If ret = 1 Then
  25.                 TracePrint "注册码登陆 成功"
  26.                 注册码登陆自动验证 = True
  27.         Else
  28.                 TracePrint "注册码登陆 失败"
  29.                 注册码登陆自动验证 = False
  30.         End If
  31. End Function

  32. Function 注册码登陆(注册码)
  33.     ret = 全局COM插件.LoginRegCode(注册码)
  34.         If ret = 1 Then
  35.                 TracePrint "注册码登陆 成功"
  36.                 注册码登陆 = True
  37.         Else
  38.                 TracePrint "注册码登陆 失败"
  39.                 注册码登陆 = False
  40.         End If
  41. End Function

  42. Function 注册码试用()
  43.     ret = 全局COM插件.TryLogin()
  44.         If ret = 1 Then
  45.                 TracePrint "注册码试用 成功"
  46.                 注册码试用 = True
  47.         Else
  48.                 TracePrint "注册码试用 失败"
  49.                 注册码试用 = False
  50.         End If
  51. End Function

  52. Function 获取试用时间()        
  53.         获取试用时间 = 全局COM插件.GetTryTime()
  54. End Function

  55. Function 获取注册码时间()
  56.         获取注册码时间 = 全局COM插件.GetRegCodeTime()
  57. End Function

  58. Function 获取项目公告()
  59.         项目公告
  60.     ret = 全局COM插件.GetPlacard(项目公告)
  61.         If ret = 1 Then
  62.                 TracePrint "获取项目公告 成功"
  63.         Else
  64.                 TracePrint "获取项目公告 失败"
  65.         End If

  66.         获取项目公告 = 项目公告
  67. End Function

  68. Function 获取自定义数据(键)
  69.         键值
  70.     ret = 全局COM插件.GetCustom(键, 键值)
  71.         If ret = 1 Then
  72.                 TracePrint "获取自定义数据 成功"
  73.         Else
  74.                 TracePrint "获取自定义数据 失败"
  75.         End If
  76.     获取自定义数据 = 键值
  77. End Function

  78. Function 设置注册码备注(备注)
  79.     ret = 全局COM插件.SetRegCodeRemark(备注)
  80.         If ret = 1 Then
  81.                 TracePrint "设置注册码备注 成功"
  82.                 设置注册码备注 = True
  83.         Else
  84.                 TracePrint "设置注册码备注 失败"
  85.                 设置注册码备注 =  false
  86.         End If
  87. End Function

  88. Function 获取注册码备注()
  89.         备注
  90.     ret = 全局COM插件.GetRegCodeRemark(备注)
  91.         If ret = 1 Then
  92.                 TracePrint "获取注册码备注 成功"
  93.                 获取注册码备注 = 备注
  94.         Else
  95.                 TracePrint "获取注册码备注 失败"
  96.                 获取注册码备注 =  备注
  97.         End If
  98. End Function

  99. Function 发送监控消息(规则名称, 消息)
  100.         备注 = 0
  101.     ret = 全局COM插件.SendMonitorMsg(规则名称, 消息)
  102.         If ret = 1 Then
  103.                 TracePrint "发送监控消息 成功"
  104.                 发送监控消息 = True
  105.         Else
  106.                 TracePrint "发送监控消息 失败"
  107.                 发送监控消息 =  false
  108.         End If
  109. End Function

  110. Function 注册码解绑()
  111.     ret = 全局COM插件.Ubind()
  112.         If ret = 1 Then
  113.                 TracePrint "注册码解绑 成功"
  114.                 注册码解绑 = True
  115.         Else
  116.                 TracePrint "注册码解绑 失败"
  117.                 注册码解绑 = False
  118.         End If
  119. End Function

  120. Function 获取最后错误信息()
  121.         错误信息
  122.         call 全局COM插件.GetLastErrorInfo(错误信息)
  123.         获取最后错误信息 = 错误信息
  124. End Function

  125. Function 获取机器码()
  126.         获取机器码 = 全局COM插件.GetMachinecode()
  127. End Function

  128. Function 更新(版本号)
  129.         更新 = 全局COM插件.UpdateFile(版本号)
  130. End Function

  131. // 自动更新 用于关闭自身的,使用的是win32里的一些API。 实现原理有兴趣的自行百度,其他的直接使用即可
  132. Public Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long
  133. Public Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
  134. Public Declare Sub rtcDoEvents Lib "msvbvm60.dll" Alias "rtcDoEvents" () As Long
  135. Function selfExit()
  136.     TracePrint "------------------退出------------------"
  137.     //call TerminateProcess(-1, 259)
  138.     Hwnd = Form1.Hwnd
  139.     Do
  140.         hwnd = GetParent(hwnd)
  141.         If hwnd = GetDesktopWindow() or hwnd=0 Then
  142.                 hwnd = oldhwnd
  143.                 Exit Do
  144.         Else
  145.             oldhwnd=hwnd
  146.         End If
  147.         rtcDoEvents
  148.     Loop
  149.     Form1.登陆界面.Caption = hwnd
  150.     Call Plugin.Window.CloseEx(Hwnd)
  151.    
  152. End Function
复制代码
上面代码是对注册码系统的接入接口做好了封装,大家只管调用即可。具体的使用方法,参见下面的步骤:


1、插件的注册与对象创建

  1. PutAttachment "c:","t_baibaoyun_com.dll"
  2. Set Ws = CreateObject("WScript.Shell")
  3. Ws.run "cmd /c regsvr32 c:\t_baibaoyun_com.dll", 0
  4. Set Ws = Nothing
复制代码

2、 注册码初始化

初始化客户端数据的时候 ,我们需要调用的是 InitDll 函数 , 传入 <百宝云注册码系统> 云应用token 与 项目名称 , 此函数必须在软件启动的时候 , 第一时间调用 , 如果初始化失败 , 所有与服务器通讯的函数全部不能使用

1.png

云应用token : 示例代码的客户端压缩包的 access.token 文件中
8.png

项目名称 : 我们可以在 百宝云注册码系统 查询到
3.png




3、检测客户端是否有更新

当我们客户端初始化成功以后 , 需要检查文件是否有更新 , 我们需要调用 UpdateFile 函数 , COM插件会自动检查文件是否有更新 , 如果有更新则会自动启动文件更新器(某些杀软可能会报毒,请添加软件到白名单)

2.png

文件版本: 在日常开发中,每个软件都应该有一个属于自己的版本号 , 在 <百宝云注册码系统> 中 , 文件版本号是有固定格式的 :1.0.0.0 , 同时我们也可以在 <百宝云注册码系统>后台查看当前项目的最新的文件版本

5.png

4、 注册码登录验证

推荐大家使用:注册码登陆自动验证 LoginRegCodeAuto 接口,此接口在登录验证成功之后,内部会自动开启心跳线程,处理注册码到期、冻结等问题。这样使用者就不需要去关心心跳验证的问题了。

6.png

3.png



如果大家调用的是:注册码登陆 LoginRegCode 函数,那么心跳就需要自己去完成了。这个心跳,其实就是自己开一个线程,每隔一段时间调用一次:获取注册码剩余时间 GetRegCodeTime 函数,来验证软件的使用权限。

7.png

4.png


以上4步,即可实现软件的注册码登录与验证操作了。
这样我们就完成了 <百宝云注册码系统> 的接入了

请大家安装好云应用之后,在云应用的右键菜单->客户端下载菜单中

下载最新版本客户端源码



回复

使用道具 举报

0

主题

3

帖子

12

积分

一级圣斗士

Rank: 1

积分
12
发表于 2016-12-21 17:03:29 | 显示全部楼层
过于繁琐
回复 支持 1 反对 0

使用道具 举报

5

主题

37

帖子

308

积分

钢铁侠

Rank: 3Rank: 3

积分
308
发表于 2016-7-22 11:56:45 | 显示全部楼层
支持!!!!
天天看电脑,头像就是证明
回复 支持 反对

使用道具 举报

1

主题

16

帖子

83

积分

功夫熊猫

Rank: 2

积分
83
发表于 2016-12-21 16:08:49 | 显示全部楼层
为什么接入以后 自己的脚本 不运行呢
回复 支持 反对

使用道具 举报

0

主题

28

帖子

120

积分

功夫熊猫

Rank: 2

积分
120
发表于 2017-2-12 01:28:04 | 显示全部楼层
有点操蛋  好像弄得注册码 只有我的这台电脑能用。。
回复 支持 反对

使用道具 举报

0

主题

4

帖子

12

积分

一级圣斗士

Rank: 1

积分
12
发表于 2019-3-31 12:04:17 | 显示全部楼层
无法下载,有没有百度云或云盘下载?
回复 支持 反对

使用道具 举报

0

主题

3

帖子

8

积分

一级圣斗士

Rank: 1

积分
8
发表于 2020-4-9 11:14:58 | 显示全部楼层
为什么我弄了好多次,我的脚本能运行,但是注册码没有运行成功。。。。。求大神回复。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

8

积分

一级圣斗士

Rank: 1

积分
8
发表于 2020-4-9 11:15:44 | 显示全部楼层
qq85511803 发表于 2017-2-12 01:28
有点操蛋  好像弄得注册码 只有我的这台电脑能用。。

老哥,我弄了一顿,发现自己写的能用,这串代码的作用没起到。可以交流一下吗
回复 支持 反对

使用道具 举报

0

主题

3

帖子

8

积分

一级圣斗士

Rank: 1

积分
8
发表于 2020-4-9 11:16:13 | 显示全部楼层
598972727 发表于 2016-12-21 16:08
为什么接入以后 自己的脚本 不运行呢

老哥,我弄了一顿,发现自己写的能用,这串代码的作用没起到。可以交流一下吗
回复 支持 反对

使用道具 举报

0

主题

9

帖子

24

积分

一级圣斗士

Rank: 1

积分
24
发表于 2021-4-25 22:14:06 | 显示全部楼层
进入了错误的思想闭环,所以你会觉得吉林11选5痛苦,所以你会觉得迷茫,所以你会觉得生活没有意义。例如就像幸运时时彩我回答里说的,太过于在意他人的看法就是一个超级大乐透错误的思想闭环。

回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-19 19:52

Powered by bby! X3.4

© 2015-2024 baibaoyun

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