【RPA干货来袭】 使用 C/C++ 扩展 UiBot 的功能

本期教程将为大家讲解如何使用 C/C++扩展 UiBot 的功能。

1、 安装Visual Studio 2010或更高版本的Visual Studio,不支持更低版本的Visual Studio或其他编程工具/IDE/编译器。
2、下载UiBot的C/C++语言插件模板。
3、 用Visual Studio打开插件模板中的LuaPlugin.sln文件。
4、 如果使用高版本的Visual Studio,会提示对模版项目进行升级。直接按照提示进行升级即可。
5、打开Visual Studio的Solution Explorer(中文版一般叫做“解决方案资源管理器”),找到项目名称LuaPlugin,按鼠标右键,选择Rename(中文版一般叫做“重命名”),将其改为你自己为插件起的名称,名称支持英文大小写字母、数字和下划线。如下图所示,其中左图为Visual Studio 2010英文版,右图为Visual Studio 2015中文版。

在插件的命名中,建议英文字母全部采用大写。这样的话,在脚本中使用插件时,无论是大写还是小写,都能正确识别到。因为编译器会用全大写的形式去尝试一次。
6、在Solution Explorer(中文版一般叫做“解决方案资源管理器”),可以看到本项目有三个文件:dllmain.cpp、entry.cpp和luaclib.cpp,我们只需要关注luaclib.cpp,其他两个文件一般不用修改。
7、注意:我们已经在项目中包含了Lua语言相关的头文件定义,不需要额外定义,更不需要把Lua语言的源码引入到这个项目中来。
8、在luaclib.cpp中,我们已经定义了两个插件函数add和strcat,其功能分别是两个整数相加,以及两个字符串连接。这两个函数仅仅作为例子,不具有实际意义,在充分阅读其源码后,可以将这两个函数删掉。
9、同时,文件的最后还有一个叫module_name的struct,其中的每一行注册了每一个插件函数。可以把其中作为示例的add和strcat删掉。
10、编写你自己的插件函数,函数名可以随意取,但函数类型必须是:

static int (lua_State *L)
11、 你自己的插件函数必须在文件最后的名称为module_name的struct中注册,才可以使用。仿照add和strcat函数进行注册即可。其中每一行有两项内容,第一项是字符串,代表这个插件函数在UiBot中的名字,第二项是插件函数本身的名字。
12、在你自己的插件函数中,请参考示例和Lua的扩展接口文档,明确参数传递规则,以及返回值的规则。
13、 当插件函数的代码中出现各种异常结果时,推荐使用下面的函数抛出一个异常,这个异常会被UiBot捕捉到:

luaL_error(L, msg);

其中,msg是一个字符串,代表你要在异常中附加的信息。

14、在UiBot的脚本中,有数组(Array)和字典(Dictionary)两种数据类型。如果需要在插件中返回一个数组,请按照以下语句书写:

luaL_dostring(L, “return BasicLib.NewTable(1)”);

上述语句会在Lua的栈里面放置一个Table,你可以使用Lua的相关函数来处理这个Table,比如为其增加元素,等等。但这个Table会在UiBot中被识别为一个数组。
类似的,以下语句可以在栈里放置一个Table,但这个Table在UiBot中被识别为一个字典:

luaL_dostring(L, “return BasicLib.NewTable(2)”);

15、插件编写完成后,对其进行编译,会生成一个名为 插件名称.so的文件。把这个文件复制到UiBot的extend\lua_mod目录中即可。

16、 在UiBot中如下书写,即可调用插件中的add函数(假设插件名称为MyPlugin):

Import MyPlugin

Dim result = MyPlugin.add(100, 200)

现在下载

还有机会参与到我们的活动当中!

还等什么?赶快来体验!

活动期间(1月16日至2月5日)下载注册登录UiBot不仅有机会可以和产品大牛、技术大神亲密接触,还有更多高级培训课程、个人版年卡等丰厚奖品等你来拿。

我们每一次努力
只为让用户获得更好的体验!

原文地址:http://blog.51cto.com/14167325/2344063

时间: 2024-11-01 18:53:30

【RPA干货来袭】 使用 C/C++ 扩展 UiBot 的功能的相关文章

【RPA干货来袭】使用.net为UiBot扩展功能

.Net 插件开发教程: 开发工具要求: 安装 vs2015,并安装.Net Framework 4.5.2 以管理员的身份打开vs2015,并创建工程 右键打开属性页(应用程序)程序集名称 与 默认命名空间 修改为 "<插件名>"(扩展名 使用英文字符) 打开 程序集信息 对话框选中 使程序集 COM 可见,确定保存 属性页 修改打开 属性页 生成选中 为 COM 互操作注册保存 属性页 修改 删除工程 默认 添加的cs文件右键 添加接口类 为 interface 添加

我是怎么利用微信月收入三万以上的!(绝对的干货来袭!)

不知道这篇文章算不算一个干货分享,与其说是干货分享,我感觉还不如说是对我自己的一个自我介绍.首先先简单的介绍一下我个人吧.在IT界(当然啦,是我的那个小圈子里),大家都叫我欢子.我是一个个地地道道的农民家庭出身.在大学中误打误撞的被调剂到计算机专业.被调剂对大家可能算是一种不幸,但我觉得对我个人而讲,被调剂到软件专业,我算是一种幸运,是上帝对我的眷顾.由于高考成绩不理想,上了一个小二本院校的专科.三年专科的学习算是兢兢业业.在学习上,生活上也算是在学校里混的风生水起.在我的小IT圈也算是一个小名

kindeditor扩展粘贴图片功能&amp;修改图片上传路径并通过webapi上传图片到图片服务器

前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功能 kindeditor修改图片上传路径并通过webapi上传图片到图片服务器(支持分布式图片) 结果演示 1.扩展粘贴图片功能演示 2.修改图片上传路径演示: 我们的网站演示地址是:http://localhost:9393/ 我们的图片服务器地址是:http://localhost:9394/

轻量级web富文本框——wangEditor使用手册(2)——扩展一个“缩进”功能

1. 引言 上一节<轻量级web富文本框——wangEditor使用手册(1)——基本应用>中我们讲解了如何应用wangEditor创建最基本的富文本编辑器,本节继续讲如何扩展一个简单的按钮.本节是继续上一节的内容来的,所使用的代码也是接着上一节的来的,错过的朋友请先看上一节,再看本节. 下载地址:https://github.com/wangfupeng1988/wangEditor demo演示:http://www.cnblogs.com/wangfupeng1988/p/4185508

SharePoint 2013 扩展查阅项功能

原文:SharePoint 2013 扩展查阅项功能 SharePoint 2013的查阅项功能,就是可以扩展其他列表字段为当前列表选项,但是选项太多的时候,会造成选择起来非常麻烦,所以,我们采取JS+Ajax的方式,改善一下这个展示,使操作更加方便. 展现效果 如下图,当我在Textbox里输入北京,会把北京开头的选项,加载到下拉选项中,如果什么都不输入,就是全部下拉选项,这样比较方便选项多的时候,进行筛选选择: 原理介绍 1. 使用JS隐藏原来的Select控件: 使用F12查看Select

三种扩展 Office 软件功能的开发模型对比 – Office Add-In Model, VBA 和 VSTO

当 Office 用户需要针对文档自定义新功能时,可以求助于 VBA 或者 VSTO 两种方式.Office 2013 富客户端以后,微软为 Office 平台上的开发者提供了一种新模型 --- Office Add-In Model,它允许在 Office 应用程序中创建一片区域,并在这片区域中展现网页与文档的交互.开发者可以将高度定制化的 Web 应用或服务集成在 Office 中,使之在整个 Office 平台上可用. 应用程序实际上并没有安装在运行 Office 的计算机上,而是托管在开

使用C++扩展Python的功能 转自:http://blog.csdn.net/magictong/article/details/8897568#comments

使用C++扩展Python的功能 环境 VS2005Python2.5.4 Windows7(32位) 简介 长话短说,这里说的扩展Python功能与直接用其它语言写一个动态链接库,然后让Python来调用有点不一样(虽然本质是一样的).而是指使用Python本身提供的API,使用C++来对Python进行功能性扩展,可以这样理解,使用更高效的语言实现一些算法计算等等需要更高执行效率的核心(或者需要与系统进行密切交互的)模块,然后让Python像调用内建标准库的方式来调用这些模块,听起来是不是很

【转】用C语言扩展Python的功能

原作者:肖文鹏 ([email protected]),原文地址:http://www.ibm.com/developerworks/cn/linux/l-pythc/ Pyton和C分别有着各自的优缺点,用Python开发程序速度快,可靠性高,并且有许多现成模块可供使用,但执行速度相对较慢:C语言则正好相反,其执行速度快,但开发效率低.为了充分利用两种语言各自的优点,比较好的做法是用Python开发整个软件框架,而用C语言实现其关键模块.本文介绍如何利用C语言来扩展Python的功能,并辅以具

Spring Boot 2.0+ 自定义配置类扩展springMVC的功能

在spring boot1.0+,我们可以使用WebMvcConfigurerAdapter来扩展springMVC的功能,其中自定义的拦截器并不会拦截静态资源(js.css等). 在Spring Boot2.0版本中,WebMvcConfigurerAdapter这个类被弃用了. @Deprecated public abstract class WebMvcConfigurerAdapter implements WebMvcConfigurer { 那么我们如何来扩展关于MVC的配置呢?