整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

想自己写一个按键精灵的插件,该怎么入手?

想自己写一个按键精灵的插件,该怎么入手?

前天有个学员问“自己写安卓按键的插件该学些什么?”

这个问题我解决起来也比较困难,因为我对按键插件也不精通,只会个皮毛,只能讲一下基础内容。

一、安卓按键插件是什么编程语言

安卓按键的插件是基于lua语言编写的。

想要写好一个插件,首先要学会lua的基本语法,这里推荐学习教程

https://www.runoob.com/lua/lua-tutorial.html

二、按键插件都包括什么内容

通常完整的插件是由3个文件组成的。

插件名.lua
插件名.info
插件名.html

①、lua文件

lua文件是插件的功能文件,插件包含的所有命令代码都在这个文件里面,这个文件是必不可少的,而其他两个文件是可以省略的。

②、info文件

info文件是给插件增加描述的,让用户能够知道插件命令是干什么用的。

没有info文件的插件:


有info文件的插件:

info文件增加为插件增加名称,为命令增加名称,还能在写代码时增加命令使用方法的描述。

虽然info文件在命令功能上没有任何作用(有没有info文件插件都能正常使用),但是info文件能让插件看起来更完整,使用插件时查找命令更方便。

③、html文件

html文件是网页文件,是详细介绍插件每个命令的网页,一般包括命令的功能,命令的参数介绍,返回值介绍,还有提供命令使用例子的代码。

关于info文件和html文件的编写,网上有现成的工具,另外就是可以参照现有插件的info文件和html文件,在其源文件上修改。

三、插件的存放位置

插件想要正常使用,必须要放在指定文件夹:

按键助手安装目录/plugin文件夹,只需要把lua文件、info文件、html文件复制到这个文件夹,然后刷新按键助手的插件列表就可以使用插件了。

四、插件的编写

在熟悉了lua语言的基本语法后,就可以编写插件了,首先说一下插件的基本格式:

在lua文件中,想要做一个按键能用的插件,就必须要是以 QMPlugin 作为前缀的函数,也就是告诉按键,这个lua函数是按键插件。

写法有两种

①、以QMplugin为前缀直接定义函数

function QMPlugin.new()


end


②、对现有的lua函数,直接通过等于号赋值给以QMplugin前缀的函数。

function new()


end
QMPlugin.new=new


说一下基本格式:

function QMPlugin.new()
  local iRet, sRet=pcall(function()
    --插件的功能区
    --return 函数返回值
  end)
  if iRet==true then
    return sRet
  else
    print(sRet)
    return ""
  end
end


代码中pcall后面的函数是插件的核心功能。

local iRet, sRet=pcall(function()
    --插件的功能区
  end)


为啥要用pcall执行函数?

是为了对函数错误处理,可以保证即便插件函数出错了,也不会引起按键异常,可以理解为插件的异常保护机制。

local iRet, sRet

定义两个变量的作用:

iRet 存储pcall执行的函数是否正常,类型布尔值

sRet 存储函数的返回值(return)

后续在根据 iRet 的布尔值判断是否输出插件的返回值。

五、LuaAuxLib 按键精灵lua库

按键精灵自带lua库的命令,这里我就不复制了,直接提供大家一个网址,大家自己去查看把。

https://blog.csdn.net/mr_oldcold/article/details/84328296

使用方法是在命令前面加上luaAuxLib前缀

function print(...)
  LuaAuxLib.TracePrint(...)
end


六、怎么学习制作插件

①、熟悉lua的基本语法

②、参照现成的插件

插件分成加密插件(后缀 .luae)和非加密插件(后缀 .lua),对于没有加密的插件,我可以直接打开源文件,比如file.lua 、shanhai.lua,只要不是luae后缀的文件,都可以使用文本打开。

参考别人的写法,自己模仿去写,遇到不会的功能可以在搜索lua相关的知识。

=正文完=

更多内容进主页查看往期文章

猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想学习按键精灵的朋友可以添加金猪脚本粉丝交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.

1.什么是网页元素特征字符串?

请参考网页特征字符串详解;

2.Html系列命令

2.1.HtmlSelect命令

1)HtmlSelect命令只能够根据Select项的值来进行选择,注意这里不是显示在Select项上的文字,而是该项的value。

一个典型的下拉框HTML代码如下:

<select name="city">

<option value="1">北京</option>

<option value="2">上海</option>

<option value="3">广州</option>

</select>

这里如果要选择上海,需要选择值为2的项;

2)级联的下拉列表组合。

在有的网页中,会有几个级联的下拉列表,后一个下拉框会随前一个框的值变化而发生变化,典型的有注册页面上的省份城市选择,HtmlSelect命令能够触发Onchange事件,会导致后一个下拉框值发生变化,但是如果执行脚本太快,而导致后一个未能选中正确的值,可以在前一个HtmlSelect后加上适当的延时;

3)多选表单中的列表控件;有的列表支持多选,在有一些个求职网站中,职业是可以多选的,这时候可以用%将多个需要选择的值连接起来传递给HtmlSelect命令实现多选;

2.2.HtmlExists命令

HtmlExists命令,能够判断指定特征的元素是否存在,并能够返回具备该特征的元素的个数。这个命令能够用来判断某个元素是否存在,如果为0证明不存在;

2.3.HtmlGet命令

HtmlGet命令比较复杂,但是功能也非常强大,该命令具备两个参数,第一个参数为获取类型,目前支持的值如下所示:

序号 值 适用对象

1 text 得到指定元素的文本值,对应DOM属性innerText

2 html 得到指定元素内部的HTML代码,对应DOM属性innerHTML

3 outerHtml 得到元素整体的HTML代码,对应DOM属性的outerHTML

4 value 得到元素的Value值,用于获取表单元素内部的值

5 src 得到图像元素的src属性,用于IMG标签对象

6 href 得到链接元素的链接地址,用于A标签

7 …其他名称 其他属性,如果您使用的是合法的属性名称,就能够返回对应的值。如何才是合法的属性?请参阅HTML标准。

第二个参数为特征字符串,如果匹配多个,只能返回第一个元素的值;

例如,获得淘宝货物价格:

Plugin price=Web.HtmlGet("text","id:id_Price")

获取某个表单文本的值

Plugin email=Web.HtmlGet("value","name:Email")

2.4.RunJS命令

RunJS命令提供了直接运行Javascript的功能,如果您对JS非常熟悉,就能够极大的扩展WQM的功能。

RunJS命令支持两中执行方式,第一个参数设置为0时,能够执行一段没有返回值的Javascript,

例如:

RunJS(0,"alert('hello');")

第一个参数设置为1时,能执行一段js并返回由return语句返回的值,返回值为字符串类型;

例如:返回Html文档的title;

RunJS(1,"var t=document.title;return t;")

如果您分析到网页中某个按钮实际上就是执行了一个函数,例如

<input type="Button" … />

您就可以直接调用

RunJS(0,"dosomething();")

JQuery的支持,网页按键精灵集成了Jquery1.3.2,为了不与其他JQ的库发生冲突,使用了wqmjq来代替$操作符,如果您需要直接使用JQ来操作网页,可使用wqmjq来执行Jquery语句:

RunJS(0,"wqmjq('#test').click();")


猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想学习按键精灵的朋友可以添加金猪脚本粉丝交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.

1.什么是网页元素特征字符串?

请参考网页特征字符串详解;

2.Html系列命令

2.1.HtmlSelect命令

1)HtmlSelect命令只能够根据Select项的值来进行选择,注意这里不是显示在Select项上的文字,而是该项的value。

一个典型的下拉框HTML代码如下:

<select name="city">

<option value="1">北京</option>

<option value="2">上海</option>

<option value="3">广州</option>

</select>

这里如果要选择上海,需要选择值为2的项;

2)级联的下拉列表组合。

在有的网页中,会有几个级联的下拉列表,后一个下拉框会随前一个框的值变化而发生变化,典型的有注册页面上的省份城市选择,HtmlSelect命令能够触发Onchange事件,会导致后一个下拉框值发生变化,但是如果执行脚本太快,而导致后一个未能选中正确的值,可以在前一个HtmlSelect后加上适当的延时;

3)多选表单中的列表控件;有的列表支持多选,在有一些个求职网站中,职业是可以多选的,这时候可以用%将多个需要选择的值连接起来传递给HtmlSelect命令实现多选;

2.2.HtmlExists命令

HtmlExists命令,能够判断指定特征的元素是否存在,并能够返回具备该特征的元素的个数。这个命令能够用来判断某个元素是否存在,如果为0证明不存在;

2.3.HtmlGet命令

HtmlGet命令比较复杂,但是功能也非常强大,该命令具备两个参数,第一个参数为获取类型,目前支持的值如下所示:

序号 值 适用对象

1 text 得到指定元素的文本值,对应DOM属性innerText

2 html 得到指定元素内部的HTML代码,对应DOM属性innerHTML

3 outerHtml 得到元素整体的HTML代码,对应DOM属性的outerHTML

4 value 得到元素的Value值,用于获取表单元素内部的值

5 src 得到图像元素的src属性,用于IMG标签对象

6 href 得到链接元素的链接地址,用于A标签

7 …其他名称 其他属性,如果您使用的是合法的属性名称,就能够返回对应的值。如何才是合法的属性?请参阅HTML标准。

第二个参数为特征字符串,如果匹配多个,只能返回第一个元素的值;

例如,获得淘宝货物价格:

Plugin price=Web.HtmlGet("text","id:id_Price")

获取某个表单文本的值

Plugin email=Web.HtmlGet("value","name:Email")

2.4.RunJS命令

RunJS命令提供了直接运行Javascript的功能,如果您对JS非常熟悉,就能够极大的扩展WQM的功能。

RunJS命令支持两中执行方式,第一个参数设置为0时,能够执行一段没有返回值的Javascript,

例如:

RunJS(0,"alert('hello');")

第一个参数设置为1时,能执行一段js并返回由return语句返回的值,返回值为字符串类型;

例如:返回Html文档的title;

RunJS(1,"var t=document.title;return t;")

如果您分析到网页中某个按钮实际上就是执行了一个函数,例如

<input type="Button" … />

您就可以直接调用

RunJS(0,"dosomething();")

JQuery的支持,网页按键精灵集成了Jquery1.3.2,为了不与其他JQ的库发生冲突,使用了wqmjq来代替$操作符,如果您需要直接使用JQ来操作网页,可使用wqmjq来执行Jquery语句: