言
前天有个学员问“自己写安卓按键的插件该学些什么?”
这个问题我解决起来也比较困难,因为我对按键插件也不精通,只会个皮毛,只能讲一下基础内容。
一、安卓按键插件是什么编程语言
安卓按键的插件是基于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语句:
*请认真填写需求信息,我们会在24小时内与您取得联系。