按键 COM插件接入示例
按键 COM插件接入 <网络验证系统> 步骤
- ////////////////////////////////功能封装区域//////////////////////////////
- dim 全局_百宝云token
- dim 全局_项目名称
- dim 全局_是否初始化
- DimEnv 全局_用户名
- dim 全局_密码
- Dim 全局_版本号
- dim 引号
- Function 获取最后错误信息()
- 错误信息
- call 全局_插件对象.GetLastErrorInfo(错误信息)
- 获取最后错误信息 = 错误信息
- End Function
- Function 初始化(token, 项目名)
- 全局_版本号 = "1.0.0.0"
- Set 全局_插件对象 = CreateObject("qsx.user")
- result = 全局_插件对象.InitDll(token, 项目名)
- If result = 0 Then
- 初始化 = False
- Else
- 初始化 = True
- End If
- TracePrint "全局_百宝云token " & 全局_百宝云token
- TracePrint "全局_项目名称 " & 全局_项目名称
- End Function
- Function 账号登陆(用户名,密码)
- If 全局_插件对象.SignOn(用户名, 密码) = 1 Then
- 账号登陆 = True
- Else
- 账号登陆 = False
- End If
- End Function
- Function 账号登陆自动验证(用户名,密码)
- If 全局_插件对象.SignOnAuto(用户名, 密码) = 1 Then
- 账号登陆自动验证 = True
- Else
- 账号登陆自动验证 = False
- End If
-
- End Function
- Function 获取账号时间()
- 获取账号时间 = 全局_插件对象.GetUserTime()
-
- End Function
- Function 获取项目公告()
- result
- ret = 全局_插件对象.GetPlacard(result)
- if(ret = 1) Then
- 获取项目公告 = result
- Else
- 获取项目公告 = ""
- End if
- End Function
- Function 获取自定义数据(键)
- result
- ret = 全局_插件对象.GetCustom(键,result)
- if(ret = 1) Then
- 获取自定义数据 = result
- Else
- 获取自定义数据 = ""
- End if
- End Function
- Function 发送监控消息(规则名称, 消息)
- ret = 全局_插件对象.SendMonitorMsg(规则名称, 消息)
- if(ret = 1) Then
- 发送监控消息 = True
- Else
- 发送监控消息 = False
- End if
- End Function
- Function 账号解绑(账号)
- ret = 全局_插件对象.Ubind(账号)
- if(ret = 1) Then
- 账号解绑 = True
- Else
- 账号解绑 = False
- End if
- End Function
- Function 账号注册(账号,密码,备注)
- ret = 全局_插件对象.SignUp(账号,密码,备注)
- if(ret = 1) Then
- 账号注册 = True
- Else
- 账号注册 = False
- End if
- End Function
- Function 账号充值(账号,充值卡)
- ret = 全局_插件对象.Charge(账号,充值卡)
- if(ret = 1) Then
- 账号充值 = True
- Else
- 账号充值 = False
- End if
- End Function
- Function 账号修改密码(账号,密码,新密码)
- ret = 全局_插件对象.ChangePwd(账号,密码,新密码)
- if(ret = 1) Then
- 账号修改密码 = True
- Else
- 账号修改密码 = False
- End if
- End Function
- Function 账号退出()
- ret = 全局_插件对象.SignOut()
- if(ret = 1) Then
- 账号退出 = True
- Else
- 账号退出 = False
- End if
- End Function
- Function 获取机器码()
- 获取机器码 = 全局_插件对象.GetMachinecode()
- End Function
- Function 文件更新(版本号)
- 全局_插件对象.UpdateFile(版本号)
- End Function
- Function GetMachineCode()
- GetMachineCode = ""
- Dim mc,mo
- Set mc = GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
- For Each mo In mc
- If mo.IPEnabled = True Then
- 'TracePrint "本机网卡MAC地址是: " & mo.MacAddress
- GetMachineCode = Plugin.Encrypt.Md5String( mo.MacAddress)
- Exit For
- End If
- Next
- Set mc = nothing
- End Function
- Function ParseJson(str,element)
- Dim sc
- Set sc = CreateObject("MSScriptControl.ScriptControl")
- sc.Language = "JScript"
- sc.AddCode "var o = " & str & ";"
- ParseJson = sc.Eval("o." & element)
- Set sc = nothing
- End Function
- // 自动更新 用于关闭自身的,使用的是win32里的一些API。 实现原理有兴趣的自行百度,其他的直接使用即可
- Public Declare Function GetParent Lib "user32" Alias "GetParent" (ByVal hwnd As Long) As Long
- Public Declare Function GetDesktopWindow Lib "user32" Alias "GetDesktopWindow" () As Long
- Public Declare Sub rtcDoEvents Lib "msvbvm60.dll" Alias "rtcDoEvents" () As Long
- Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long
- Public Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long
- Function selfExit()
- TracePrint "------------------退出------------------"
- //call TerminateProcess(-1, 259)
- Hwnd = Form1.Hwnd
- Do
- hwnd = GetParent(hwnd)
- If hwnd = GetDesktopWindow() or hwnd=0 Then
- hwnd = oldhwnd
- Exit Do
- Else
- oldhwnd=hwnd
- End If
- rtcDoEvents
- Loop
- Form1.登陆界面.Caption = hwnd
- Call Plugin.Window.CloseEx(Hwnd)
-
- End Function
复制代码
- PutAttachment "c:","WebWLYZ.dll"
- Set Ws = CreateObject("WScript.Shell")
- Ws.run "cmd /c regsvr32 c:\WebWLYZ.dll", 0
- Set Ws = Nothing
复制代码
初始化客户端数据的时候 ,我们需要调用的是 InitDll 函数 , 传入 <网络验证系统> 云应用token 与 项目名称 , 此函数必须在软件启动的时候 , 第一时间调用 , 如果初始化失败 , 所有与服务器通讯的函数全部不能使用
云应用token : 示例代码的客户端压缩包的 access.token 文件中
项目名称 : 我们可以 网络验证系统后台查询到
当我们客户端初始化成功以后 , 需要检查文件是否有更新 , 我们需要调用 UpdateFile 函数 , COM插件会自动检查文件是否有更新 , 如果有更新则会自动启动文件更新器(某些杀软可能会报毒,请添加软件到白名单)
文件版本: 在日常开发中,每个软件都应该有一个属于自己的版本号 , 在 <网络验证系统> 中 , 文件版本号是有固定格式的 :1.0.0.0 , 同时我们也可以在 <网络验证系统>后台查看当前项目的最新的文件版本
推荐大家使用:账号登陆自动验证 SignOnAuto 接口,此接口在登录验证成功之后,内部会自动开启心跳线程,处理账号到期、停用等问题。这样使用者就不需要去关心心跳验证的问题了。
如果大家调用的是:注册码登陆 SignOn 函数,那么心跳就需要自己去完成了。这个心跳,其实就是自己开一个线程,每隔一段时间调用一次:获取账号剩余时间 GetUserTime 函数,来验证软件的使用权限。
心跳验证
以上4步,即可实现软件的登录与验证操作了。 这样我们就完成了 <网络验证系统> 的接入了
请大家安装好云应用之后,在云应用的右键菜单->客户端下载最载最新版本
|