`
baibaiyun
  • 浏览: 28392 次
社区版块
存档分类

百宝云COM组件操作教程

 
阅读更多

百宝云COM组件

百宝云提供的COM插件里,有4大类函数,分别如下:

公共接口类:用来与百宝云进行通信

②效验算法类用来效验字符串、文件合法性

加解密用来加解密字符串、文件。

④JSON类用来解析或者构建JSON字符串。

 

   这里我们主要来讲讲与百宝云默认事件相关的接口,其他的接口,大家可以去看看百宝云的帮助文档,文档里的描述比较详细,而且都有相应的示例代码。

 

    不过我们在调用插件里的函数之前,必须要先注册插件,否则调用函数会失败。

TC里,我们可以把插件加入到项目的资源目录里(导入资源、手动拷贝到资源目录),这样之后,我们只需要在TC的界面初始化事件里加入插件注册代码即可。代码如下

功能bbycom_初始化()

//这里添加你要执行的代码

变量ret=是否注册("bby.soft")

如果(!ret)

ret=注册插件("rc:t_baibaoyun.dll",真)

如果(!ret)

消息框("插件注册失败")

退出()

结束

结束

bby=插件("bby.soft")

结束

 代码中

的bby是一个全局变量,用来保存插件的对象。

 

 

 

 

5.1 login接口

程序调用插件中的login函数时,百宝云就会触发_userlogin事件。

注意调用此函数之前,需要先调用插件里的reg函数,只有在reg成功的情况下,login才会调用成功,并且触发对应的事件。

login函数原型如下:

login(custom_char,arg,msgbuff)

 

对应的百宝云事件原型如下

_userlogin(token,arg1,arg2,&out_ret)

 

这里类讲下参数的对应关系:

_userlogin中的token参数对应reg函数的token值。

_userlogin中的arg1参数对应login函数的custom_char值。

_userlogin中的arg2参数对应login函数的arg值。

_userlogin中的out_ret参数对应login函数的msgbuff值。

 

注意同一个百宝云应用中,custom_char值必须是唯一的,否则会踢掉原先用custom_char已经登录的用户从而导致无法收到百宝云推送过来的消息。

 

百宝云测试代码

function_userlogin(token,arg1,arg2,&out_ret)

out_ret="来自com插件的login函数的请求"

returntrue

end

 

客户端的测试代码(TC代码)

功能login登录测试()

变量result

result=bby.reg("abin","aac5ddb832bbca6d2db00a7557152d5c")

如果(result==0)

变量ret=bby.login("user","pwd",result)

如果(ret==0)

调试输出("登录成功")

返回真

否则

调试输出("login登录失败,错误代码:"&ret)

返回假

结束

否则

调试输出("注册失败,错误代码:"&result)

返回假

结束

结束

 

5.2pushconnect接口

程序调用插件中的pushconnect函数时,百宝云就会触发_userpush事件。

注意调用此函数之前,需要先调用插件里的reg函数,只有在reg成功的情况下,pushconnect才会调用成功,并且触发对应的事件。

pushconnect函数原型如下:

pushconnect(custom_char,arg,msgbuff)

 

对应的百宝云事件原型如下:

_userpush(token,arg1,arg2,&out_ret)

 

这里类讲下参数的对应关系:

_userpush中的token参数对应reg函数的token值。

_userpush中的arg1参数对应pushconnect函数的custom_char值。

_userpush中的arg2参数对应pushconnect函数的arg值。

_userpush中的out_ret参数对应pushconnect函数的msgbuff值。

 

注意同一个custom_char,在同一个百宝云应用里可以多次使用,不会出现踢掉原先登录情况。

 

百宝云的测试代码如下:

function_userpush(token,arg1,arg2,&out_ret)

out_ret="来自com插件的pushconnect函数的请求"

returntrue

end

 

TC中的测试代码如下:

功能push登录测试()

变量result

result=bby.reg("abin","aac5ddb832bbca6d2db00a7557152d5c")

如果(result==0)

变量ret=bby.pushconnect("user","pwd",result)

如果(ret==0)

调试输出("登录成功")

返回真

否则

调试输出("push登录失败,错误代码:"&ret)

返回假

结束

否则

调试输出("注册失败,错误代码:"&result)

返回假

结束

结束

 

 

5.3commoninterface接口

程序调用插件中的commoninterface函数时,百宝云就会触发_commoninterface事件。

注意调用此函数之前,需要先调用插件里的reg函数,只有在reg成功的情况下,commoninterface才会调用成功,并且触发对应的事件。

commoninterface函数原型如下:

commoninterface(arg,retbuff)

 

对应的百宝云事件原型如下:

_commoninterface(token,arg)

 

这里类讲下参数的对应关系:

_commoninterface中的token参数对应reg函数的token值。

_commoninterface中的arg参数对应commoninterface函数的arg值。

commoninterface中的retbuff参数则是_commoninterface事件return的值。

 

百宝云里的事件代码:

function_commoninterface(token,arg)

return"来自com插件的请求请求"

end

 

TC中的测试代码如下:

功能push登录测试()

变量result

result=bby.reg("abin","aac5ddb832bbca6d2db00a7557152d5c")

如果(result==0)

变量ret=bby.commoninterface("test",result)

如果(ret==0)

调试输出("登录成功")

返回真

否则

调试输出("commoninterface失败,错误代码:"&ret)

返回假

结束

否则

调试输出("注册失败,错误代码:"&result)

返回假

结束

结束

 

 

5.4接收百宝云推送数据的函数

插件里提供了几个回调函数,用来接收百宝云推送的内容,这样我们就可以做很多事情了,例如:登录的用户群发更新软件通知、功能变更通知;对单个用户发送节日问候、警告通知等等。

 

百宝云里提供了几个命令用来推送内容的,命令如下:

pushtextmsg推送文本消息到连接用户

pushtextmsgall推送文本消息到所有连接用户

logintextmsg推送消息到登陆用户

logintextmsgex推送消息到登陆用户扩展

 

push类的推送数据

实现推送数据功能的流程如下:

1)成功注册插件

2)创建插件对象

3)成功调用插件的reg方法

4)成功调用插件的pushconnect方法

5)插件的回调函数关联一个本地的回调函数。

6)百宝云里通过pushtextmsg、pushtextmsgal对登录的用户推送内容。

 

TC端的代码如下(只有主要代码

功能bbycom_初始化()

//这里添加你要执行的代码

变量ret=是否注册("bby.soft")

如果(!ret)

ret=注册插件("rc:t_baibaoyun.dll",真)

如果(!ret)

消息框("插件注册失败")

退出()

结束

结束




bby=插件("bby.soft")

ret=bby.reg("abin","fb0093726c769c715c038450a52442a8")

如果(ret!=0)

消息框("向百宝云注册失败,失败原因:"&bby.TranslateErr(ret))

退出()

结束

结束




功能login_点击()

//这里添加你要执行的代码

变量result

变量ret=bby.pushconnect("user2","pwd",result)

如果(ret==0)

变量login_callback_handle=回调函数申请("login_callbackpush","bby_callback")

如果(login_callback_handle!=0)

bby.msgcallback_push(login_callback_handle)

调试输出("设置push回调函数成功")

否则

消息框("设置回调函数失败,推送消息将无法接收!")

结束

调试输出(result)

否则

调试输出(ret)

结束


结束

功能login_callbackpush(type,arg)

traceprint("触发回调函数")

变量content=当前时间()&"\r\npush类型:"&type&"\r\n"&"push内容:"&地址取值(arg,"wchar*")

traceprint(content)

消息框(content)

结束

 黄色

背景的代码就是设置回调函数并接收百宝云推送内容关键代码段。

 

 

 

代码演示图:

百宝云端效果

 

 

TC端的效果

 

 

 

 

login类的推送数据

实现推送数据功能的流程如下:

1)成功注册插件

2)创建插件对象

3)成功调用插件的reg方法

4)成功调用插件的login方法

5)插件的回调函数关联一个本地的回调函数。

6)百宝云里通过logintextmsg、logintextmsgex对登录的用户推送内容。

 

TC端的代码如下(只有主要代码

功能bbycom_初始化()

//这里添加你要执行的代码

变量ret=是否注册("bby.soft")

如果(!ret)

ret=注册插件("rc:t_baibaoyun.dll",真)

如果(!ret)

消息框("插件注册失败")

退出()

结束

结束




bby=插件("bby.soft")

ret=bby.reg("abin","fb0093726c769c715c038450a52442a8")

如果(ret!=0)

消息框("向百宝云注册失败,失败原因:"&bby.TranslateErr(ret))

退出()

结束

结束




功能login_点击()

//这里添加你要执行的代码

变量result

变量ret=bby.login("user","pwd",result)

如果(ret==0)

变量login_callback_handle=回调函数申请("login_callbacklogin","bby_callback")

如果(login_callback_handle!=0)

bby.msgcallback_login(login_callback_handle)

调试输出("设置login回调函数成功")

否则

消息框("设置回调函数失败,推送消息将无法接收!")

结束

调试输出(result)

否则

调试输出(ret)

结束


结束


功能login_callbacklogin(type,arg)

traceprint("触发回调函数")

变量content=当前时间()&"\r\nlogin类型:"&type&"\r\n"&"login内容:"&地址取值(arg,"wchar*")

traceprint(content)

消息框(content)

结束

 

 

 

黄色背景的代码就是设置回调函数并接收百宝云推送内容关键代码段。

 

百宝云端的代码:

百宝云主要是实现了_userlogin事件之后在主按钮里调用命令logintextmsg推送内容。

//程序入口功能

功能_initial()

发送文本消息("初始化接口")

结束

//按下主按钮触发的功能方法

功能_mainbutton()

发送文本消息("开始推送内容")

if(logintextmsg("user","HI,你好"))

sendtextmsg("login推送内容成功")

else

sendtextmsg("login推送内容失败")

end

结束




功能_userlogin(token,arg1,arg2,&out_ret)

sendtextmsg("loginname="&arg1&"pwd="&arg2)

out_ret="来自com插件的login函数的请求"

returntrue

结束

 

演示图

百宝云APP图

 

TC端的图:

 

 

 

注意

TC代码中,因为申请的回调函数都是bby_callback,所以login与push的推送在本地只有最后一次申请的回调函数有效。

但是在C++里,因为回调函数可以自己定义,所以就不存在这个问题。

 

5.5效验与加解密类接口

COM插件里的效验接口、加解密接口与百宝云里提供的效验接口、加解密函数是对应的,可以通用的。现在通过一个示例来验证下如下的需求:

在COM里使用AES加密算法aesencrypt加密一个字符串”abcd”,之后把密文通过commoninterface发送给百宝云进行解密,得到数据。

TC端的代码

功能test()

变量bby=插件("bby.soft")

变量sourcestr="abcd",key="bby"

变量result=bby.aesencrypt(sourcestr,key)

变量retbuff=""

如果(bby.reg("abin","aac5ddb832bbca6d2db00a7557152d5c")==0)

变量ret=bby.commoninterface(result,retbuff)

如果(ret==0)

消息框(retbuff)

否则

消息框("commoninterface失败")

结束

否则

消息框("reg失败")

结束

结束

 

百宝云端的代码

功能_commoninterface(token,arg)

变量ret=aesdecrypt(arg,"bby")

返回"百宝云解密的内容是:"&ret

结束

 

 

 

5.6Json操作接口

5.6.1利用com构建json字符串

TC代码如下

变量pJson=bby.jsoncreate()

bby.jsonpushstring(pJson,"str","用户向作者反馈信息")

bby.jsonpushstring(pJson,"type","sendApp")

变量conent=bby.jsontostring(pJson)

bby.jsonfree(pJson)

变量retstr

bby.commoninterface(conent,retstr)

消息框(retstr)




 

百宝云代码如下

功能_commoninterface(token,arg)

发送文本消息("接收到的内容是:"&arg)

变量ret=json转数组(arg)

发送文本消息("str="&ret["str"])

发送文本消息("type="&ret["type"])

返回"解析成功"

结束




5.6.2解析JSON字符串

百宝云代码

功能_commoninterface(token,arg)

变量arr=数组()

arr["zhangsan"]="学生"

arr["lisi"]="工程师"

返回数组转json(arr)

结束




TC的代码

功能解析JSON字符串(json字符串)

变量a=bby.jsonparse(json字符串)

变量size=bby.jsongetsize(a)

变量key,value

遍历(变量i=0;i<size;i++)

bby.jsongetat(a,i,value,key)

调试输出(i&":key="&key&"value="&value)

结束

结束



 

分享到:
评论

相关推荐

    百宝云COM开发组件1.1最新官网版

    百宝云COM开发组件是...任何语言都可以做到无缝的与百宝云应用进行连接百宝云组件内置了数十种加解密算法,与百宝云内部数十种加密算法对应,可以无缝进行加解密操作。WIN7 WIN8 WIN10 系统注意事项 1、系统已经关闭UA

    百宝云更新程序

    支持在线更新 对接百宝云编写代码 进行对接 详情

    百宝云易语言网络验证系统v4.0源码

    继之前开源的易语言网络验证系统V1版、V2.0版,本次百宝云给大家开源易语言网络验证V4版,功能完善,性能稳定,获得很多脚本作者的好评。整个管理端是纯易语言编写,全开源。 本套系统功能介绍: 1、支持批量生成...

    百宝云开发工具 1.8

    5. **易用性与兼容性**:作为一款面向开发者的工具,百宝云开发工具1.8很可能是跨平台的,支持Windows、MacOS和Linux等操作系统。同时,它可能提供直观的图形用户界面(GUI)和丰富的文档支持,便于开发者快速上手和...

    百宝云网络验证系统源码最新版

    批量生成卡、查询卡、自动更新、加密、防破解、实时监控、管理等功能,最新、最全版本。

    百宝箱,鼠标连点流程录制

    标题中的“百宝箱,鼠标连点流程录制”暗示了我们正在讨论的是一款能够记录并自动执行鼠标点击操作的工具。这种工具在IT行业中通常被称为鼠标宏或自动化工具,它们可以极大提高用户的工作效率,特别是在需要重复性...

    百宝箱4.0简体2003.

    这个文件就是百宝箱4.0的核心组件,当你将其加载到Excel 2003中后,它会添加新的菜单、工具栏或者函数,提供如公式库、图表模板、数据透视表助手等附加功能。这些功能可能包括但不限于自动填充序列、复杂公式的预设...

    EXCEL万能百宝箱 V29.8 内置了图片百宝箱、财务百宝箱、函数百宝箱、二维码百宝箱.rar

    内置了图片百宝箱、财务百宝箱、函数百宝箱、二维码百宝箱。包括280个菜单功能和200个以上自定义函数,集480个宝贝于一身,但体积小于30MB。当安装万能百宝箱后,如果您使用Excel 2003,则将产生【万能百宝箱】菜单...

    EXCEL万能百宝箱V26.0官方正版+GIF教程

    “界面预览须知”则可能介绍了软件的界面布局和操作流程,帮助用户更好地理解和使用各项功能。 总的来说,EXCEL万能百宝箱V26.0以其丰富的功能、友好的用户体验和全面的教程资源,为Excel用户打造了一个强大的办公...

    简单百宝箱鼠标连点器5.0绿色独立版

    简单百宝箱鼠标连点器绿色独立版使用: 1、下载解压简单百宝箱鼠标连点器,文件夹里面文件都不要删除 2、双击运行简单百宝箱鼠标连点器.exe文件运行 简单百宝箱鼠标连点器说明: 连点左键:F9 连点右键:F10 左右键...

    百宝箱百宝箱百宝箱百宝箱

    百宝箱百宝箱百宝箱百宝箱百宝百宝箱百宝箱百宝箱百宝箱箱

    易语言-易语言百宝云网络验证系统V2.0版

    易语言百宝云网络验证系统V2.0版

    VBA代码百宝箱第3版.rar

    控制结构用于决定程序执行的流程,而函数和过程则实现了代码的模块化,方便重用和管理。 二、VBA对象模型 VBA的对象模型是其强大之处,如Excel VBA中的Worksheet、Range、Workbook等对象,通过这些对象,我们可以对...

    网易百宝箱JS日历

    【网易百宝箱JS日历】是一款基于JavaScript技术开发的日历组件,它以其美观的界面和实用的功能在网页设计中广泛应用。这款日历组件源于网易公司,被广大开发者所推崇,因为它不仅提供了基本的日历展示功能,还具备了...

    Word万能百宝箱 v29.0 【办公插件 文字编辑 办公必备】

    Office百宝箱全家福系列,为中汛软件科技公司荣誉出品,现有: Excel万能百宝箱、Word百宝箱、PowerPoint百宝箱、Outlook百宝箱、Publisher百宝箱、Access百宝箱、VBA百宝箱、WPS百宝箱、Office编程百宝箱、银河ERP...

    生活百宝箱-仿网易百宝箱修改完整版

    此完整版应该包含了所有必要的组件和功能,使其能够正常运行并提供与原版网易百宝箱相似的服务。 在PHP编程语言中,开发这样的百宝箱应用需要掌握以下知识点: 1. **PHP基础**:理解PHP的基本语法、变量、数据类型...

    excel box 百宝箱

    这个百宝箱包含了61个独特的工具,每个都针对Excel操作中的不同需求进行了优化,同时也提供了25个自定义函数,使得数据分析、数据整理和报告制作变得更加便捷。 首先,我们要理解Excel本身的功能强大,它是一种广泛...

    基于JSP的网络百宝箱

    7. **文件上传与下载**:如果"网络百宝箱"支持文件管理,那么需要处理文件的上传和下载功能,这涉及到文件I/O操作和安全性考虑,如防止非法文件类型或大小。 8. **错误处理与日志记录**:良好的错误处理和日志记录...

Global site tag (gtag.js) - Google Analytics