按键精灵注册码(安卓按键精灵写入表格的应用保存seo查关键词的排名)
按键精灵注册码文章列表:
- 1、安卓按键精灵写入表格的应用保存seo查关键词的排名
- 2、按键精灵必须掌握的命令之插件命令
- 3、按键精灵让脚本界面上出现你想要的文字
- 4、中国最简单粗暴的编程工具按键精灵
- 5、按键精灵自动寻路系列换算地图坐标寻路法
安卓按键精灵写入表格的应用保存seo查关键词的排名
本期文章讲两个知识点,一是把数据写入表格。二是通过api数据接口获取关键词在百度上的排名情况。
先来说如何把数据写入表格当中,用过采集软件的朋友,可能接触过这么一种文件格式(.csv),这个格式在百度百科里面描述的名字叫“逗号分隔值”,但是从文件图标上来看,和excel表格是一样的,也就是说它也是支持office办公软件打开的。
通过它名字“逗号分隔值”,我们其实可能猜测到,它是可以通过逗号进行分隔的,这个也是它的最大特点。具体来说就是当写入的内容中,有英文状态下的的逗号,就会以逗号分开,放入表格中的不同“列”中。
比如写入的内容是qwe,sdf
看到的效果就是下面这样~
当然,这个csv文件如果用记事本打开,还是显示qwe,sdf
它的用处是啥呢?
对比上面两张图,记事本显示的是一行内容,而csv通过表格工具打开以后是显示一行两列。这样如果多类数据写入的话,就可以实现分列展示。后期需要数据运算处理,直接转化成表格的xls格式,非常方便。
第二个知识点,通过api接口获取关键词在百度搜索中的排名情况。
这里用的是站长工具的api数据接口,http://api.chinaz.com/ApiDetails/BaiduPcRanking
这个接口每天有500个的免费查询量,对于普通的网站的SEO查询是足够了。对于做网站优化,网络推广的朋友还有有一些用处的。
先看看它的API文档:
对于api对接,常见的就是get和post两种方式,本期的案例中两种都支持,那么对于都支持的我们就用相对简单的get方式。
下面我们开始具体的操作,新建一个csv文件,和新建txt一样,直接用file.write命令。
Dim 路径="/sdcard/pictures/排名.csv"
file.Write (路径, "")
生成好csv以后,接下来是要对接api接口了,先去申请一个key,这个需要注册,这里如果你仅仅为了测试,直接用我的:
"c40fa0ee91ea4e2f8fbf303470806194"
每天500的免费量,很可能用的人多,一会儿就没有了。这里建议大家自己申请,如果测试无法使用,可能就是这个原因了。
我们以在百度上搜索“按键精灵安卓版教程”这个关键词为例,看看我在简书上发文章的页面的排名情况。为了能够有数据,这里我刻意找了一个有排名的页面来做案例。
Dim 路径="/sdcard/pictures/排名.csv"
Dim 路径1="/sdcard/pictures/未有排名.csv"
file.Write (路径, "")
file.Write (路径1, "")
Import "shanhai.lua"
Dim key="c40fa0ee91ea4e2f8fbf303470806194"
Dim 域名="www.jianshu.com"
Dim 关键词="按键精灵安卓版教程"
Dim m=ShanHai.GetHttp("http://apidata.chinaz.com/CallAPI/BaiduPcRanking?key="&key&"&domainName="&域名&"&keyword="&关键词)
TracePrint m
Dim a=Encode.JsonToTable(m)
If a["Reason"] = "成功" Then
If UBOUND(a["Result"]["Ranks"]) > -1 Then
If InStr(1, a["Result"]["Ranks"][1]["RankStr"], "1-")>0 Then
Dim x=split(a["Result"]["Ranks"][1]["RankStr"],"-")
Dim y=a["Result"]["Ranks"][1]["Title"]
TracePrint 关键词&"----"&y&"----"&"首页第"&x(1)&"位"
File.writeline(路径,1,关键词&","&y&","&"首页第"&x(1)&"位")
End If
Else
File.writeline(路径1,1,关键词)
End If
End If
有排名就可以看到如下效果:关键词 网站标题 百度排名情况
当然这里我还用另外一个csv文件,存储没有排名的关键词,留做备份之后着重优化的词语。
由于之前有多期教程讲过api对接以及返回值为json的提取方式,这里就不重新写了。
需要有几点注意的地方:
一、我在测试时候,url.get命令当网址是拼接的时候,获取不到数据,所以选用了同样功能的山海命令。
二、这个案例中我只写了一个关键词的测试,如果是多个关键词的,可以循环获取。
三、使用脚本时,不能打开csv,否则无法写入数据到csv中,导致脚本报错。
四、这个api数据接口支持批量获取数据,自行研究下吧。
好了,本期内容就这些,
按键精灵必须掌握的命令之插件命令
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
一、按键精灵插件介绍
按键精灵插件是按键精灵提供的一种开放的功能接口。只要您稍懂一点编写程序的知识,就可以通过自己写按键精灵插件,实现比较特殊、高级的功能。按键精灵官方会不断扩充插件的功能,也欢迎您把自己写的插件提交给我们,和大家共同分享您的智慧!
二、什么是认证的按键精灵插件
认证的插件是兄弟工作组官方对插件源代码进行严格审核后制作的插件,可以确保插件的功能无害。未认证的插件是网友自己制作没有经过审核的,可能存在一定的风险。如果您自己制作了插件希望得到认证,请将插件的源代码发给我们,联系方式请看帮助文档。
三、按键精灵插件如何使用
插件有两种使用方法
1、用Plugin关键字带插件的命令,例如
Plugin hWnd=Window.MousePoint()
2、使用import命令导入插件,可省略Plugin关键字直接使用,例如
import "window.dll"
hWnd=Window.MousePoint()
四、如何开发按键精灵插件
按键精灵的插件是通过动态链接库(DLL)的形式提供的。目前支持VC和VB两种开发方式,在按键精灵目录下的plugin目录下有插件的源代码模板工程,您只要按照其中的说明将自己的功能添加进去,即可做出自己的插件。按键精灵的插件开发非常简单,强烈推荐有一点点编程基础的朋友去尝试写一个属于自己的插件,你将会惊奇的发现为按键精灵扩充功能原来真的很有趣。
点击这里查看按键精灵查看开发文档
五、例子
用文件插件复制一个文件
1、新建脚本
2、展开插件命令面板,选择File:文件操作的插件
图:插件命令面板
3、选择CopyFile:复制一个文件的命令
4、在调用参数里写上"c:windowsnotepad.exe","c:note.exe",点击插入。
5、插入后的脚本命令是Call Plugin.File.CopyFile("c:windowsnotepad.exe","c:note.exe")
6、按下热键就会把c:windowsnotepad.exe这个文件复制为c:note.exe
按键精灵让脚本界面上出现你想要的文字
大家好,我是公众号3分钟学堂的郭立员,今天继续按键精灵安卓版教程讲解,上期文章《关于按键ui界面上的数据重启丢失的原因》中,我讲到怎么获得界面中元素的数据内容。这期文章我们继续做一下延展。
上图中我们回顾一下,读取红框中的文件获取界面元素的数据。
Dim 路径="/sdcard/MobileAnJian/UIConfig/586647d1-efe9-49d1-92ab-e81390a27435"
dim a=File.read(路径)
TracePrint a
通过运行这一段代码,可以获取到界面中的数据内容,如下图所示,界面中有一个名称为输入框1的输入框,内容是“我是界面输入框的内容”。
预览界面也可以看到如下图的样子:
接下来我要通过代码修改这段文字内容,使其发生改变。
Dim 路径="/sdcard/MobileAnJian/UIConfig/586647d1-efe9-49d1-92ab-e81390a27435"
dim a=File.read(路径)
Dim table=Encode.JsonToTable(a)
TracePrint table["输入框1"]
table["输入框1"] = "我已经发生变化了!"
Dim json=Encode.TableToJson(Table)
Call File.Write(路径, json)
这段代码中,我是将读取的内容,
先转化为table(表)数据,
Dim table=Encode.JsonToTable(a)
之后直接修改表数据
table["输入框1"] = "我已经发生变化了!"
转为json类型
Dim json=Encode.TableToJson(Table)
写入到原来的界面文件
Call File.Write(路径, json)
这个有啥用呢,其实在之前我们一直说,安卓按键的界面是静态界面,也就是没法被脚本修改,这句话是没错,但是也不是绝对的,通过修改界面配置文件,也是可以变相做到修改界面数据的。
当然还有一点我这里面没有测试,就是小精灵的界面是否可以修改,如果可以修改,那就直接可做脚本“提示信息”使用。你想显示什么内容,就把内容内置到脚本中,运行即可修改。
这台电脑上也没有现成的小精灵,我就不测试了。路径应该是
Dim 包名=此处填写小精灵的包名
Dim 路径="/data/data/"&包名&"/files/script.cfg"
对于雷电模拟器,需要开启超级用户访问模式,才能在模拟器看到这个文件。
好了,本期内容就这些。
中国最简单粗暴的编程工具按键精灵
按键精灵可以帮您操作电脑,支持动作录制和回放功能。不需要任何编程知识就可以做出功能强大的脚本。只要您在电脑前用双手可以完成的动作,按键精灵都可以替您完成。
按键精灵内置上百个命令,提供全界面化的操作。脚本还可以生成独立的小精灵软件,发给朋友分享。放飞您的双手,点亮您的创意,自己做软件,也可以如此简单!
按键精灵提供了强大的插件功能扩展,已经有数百位高手制作了上千个插件命令供您使用。只有您想不到的功能,没有您找不到的功能。
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
按键精灵自动寻路系列换算地图坐标寻路法
金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚本以及网赚脚本等各个领域。想制作脚本和学习按键精灵的朋友可以添加按键精灵学习交流群:554127455 学习路上不再孤单,金猪脚本伴你一同成长.
上周跟大家介绍了关于游戏地图的寻路方式,也以烈焰游戏无题材向大家分享了下最简单的寻路方法—直接输入坐标寻路法,看过之后,想必大家对游戏的寻路方式有了一定的认知,小编今天再跟大家分享下进阶版的寻路方法,即换算地图坐标寻路法
换算地图坐标寻路法
神马叫换算游戏坐标寻路法呢?顾名思义就是游戏地图上显示的坐标跟我们屏幕实际坐标不一致,需要通过相应关系的换算才能算出地图坐标相对于屏幕实际坐标的偏移量,然后鼠标相对偏移量点击地图某位置后即可自动进行寻路,听到这里估计大家还是不大懂,没关系,下面小编就以神途游戏为例子,跟大家深度解析下
游戏地图
图上左上角红色的点0,0为游戏地图的起始坐标,
右下角红色的点为游戏地图的终点坐标830,690,
但是实际上我们用qq截图功能对地图区域进行截图
会发现该地图图片的实际大小大概只有660*415像素,
除了游戏初始(0,0)坐标跟实际鼠标偏移坐标一致外,
其他游戏地图坐标跟实际鼠标偏移坐标都是不一致的
再进一步来讲就是相对于游戏地图初始点坐标(0,0)来讲
游戏坐标(830,690)=实际鼠标偏移坐标(660,412)
那根据这个关系我们怎么进行坐标换算呢
坐标换算
该游戏地图的大小都是660*412像素(实际是600*375,上传到论坛变大了,为了方便对照,我们就以上面的图片为例),那比如我们当前人物如上图所示坐标是(258,266),游戏地图最大坐标是(830,690),那么相对于游戏地图起始坐标(0,0)点来讲,我们人物角色当前的所在位置(也就是地图上橘黄色的点的中心位置)就应该等于:
实际偏移X坐标=int(660/830*258)=205
实际偏移Y坐标=int(412/690*266)=159
到底对不对呢,我们不妨用大漠综合工具的浮动抓图功能截取上面的图片来验证看看:
有图有真相,事实证明小编的计算是正确的
思路流程
技术难点:
1.地图名不一样所对应的地图最大X、Y坐标都不一样
2.如何确定地图初始点(0,0)位置,然后进行坐标换算后偏移
3.移动过程中,如何判断人物是否已经移动到了指定坐标点,开始下一步动作
绑定窗口
今天我们写的脚本有用到大漠插件,并且是后台的
因为是单开脚本,顶层窗口句柄就是游戏所对应的客户区句柄,所有用的是大漠的findwindow命令,查找符合类名或者标题名的顶层 可见窗口
后台绑定模式:
图色模式:dx2
鼠标模式:windows
键盘模式:windows
关于大漠绑定模式如何获知
请参阅相关院刊:
【院刊】-【201501期】沙盘后台绑定游戏
判断地图名
游戏左下角会显示地图名及坐标,由于游戏不同的地图对应的游戏最大X坐标、Y坐标都是不一样的,所以我们要先识别当前的地图名,然后根据识别到的地图名对最大X坐标、Y坐标进行相应赋值,由于左下角会显示地图名和坐标,相互之间有时会有影响,所以做了俩个字库(坐标字库、地图名字库),分开调用
打开地图
为了避免地图已经打开的情况
我们要先判断地图有没有打开,没有打开的话才去按Tab键打开地图
因为后面我们找字的时候就是要在地图上找字,所以我们先进行找字
没找到字的情况下说明地图没打开,再按Tab键打开地图
确定地图初始点坐标
找地图上的"复活区"字,找到后就会得到该字左上角第一点坐标(IntX,IntY)然后通过大漠工具精确抓图获取到地图初始点位置(0,0)相对于"复活区" 偏移的坐标
地图起始点X坐标=IntX-154
地图起始点Y坐标=IntY 31
判断寻路是否到达
这个在上一期的寻路院刊已经介绍过了,这边就不重复说明了,具体请查看院刊:按键有屎以来最智能寻路系列
整体代码
Call 注册大漠()
Set dm = createobject("dm.dmsoft")//创建大漠对象
Call 找句柄()
Delay 100
Call 大漠绑定()
dm_ret = dm.SetPath("D:test")//设置全局路径
dm_ret = dm.SetDict(0, "神途地图名字库.txt")//设置字库为地图名字库为0号字库
dm_ret = dm.SetExactOcr(1)//设置找字方式为精确查找,避免类似字符的干扰
//地图起始点X坐标=找"复活区"字-155
//地图起始点Y坐标=找"复活区"字 31
Delay 1000
Call 寻路(360, 360)
Function 寻路(X坐标, Y坐标)
Call 识别当前地图名//主要作用在于给当前地图最大X、Y坐标赋值
dm_ret = dm.SetDict(1, "神途坐标字库.txt")//设置坐标字库为1号字库
dm_ret = dm.UseDict(1)//使用1号字库来找字
Call 找字
Delay 1000
x =int(600/地图最大X坐标*X坐标)
y =int(375/地图最大Y坐标*Y坐标)
TracePrint x
TracePrint y
dm.MoveTo intX-154 x,intY 31 y//相对于地图起始点坐标进行换算后的鼠标偏移点击
Delay 1000
dm.leftclick
Do
s = dm.Ocr(77,746,133,764, "ffffff-000000", 0.9)
If len(s) > 0 Then
坐标 = split(s, ":")//分割游戏左下角显示的x、y坐标
TracePrint "当前角色所在坐标为"&s
// TracePrint cint(坐标(0))
// TracePrint cint(坐标(1))
If (abs(x坐标 - cint(坐标(0))) < 3) and (abs(y坐标 - cint(坐标(1))) < 3) Then //当前位置坐标与指定坐标的距离差的绝对值小于3则判断到达指定坐标
dm.keypress 9////按tab关闭地图
Call Plugin.Msg.Tips("到达指定坐标,寻路结束并关闭地图")//托盘信息提示到达指定坐标
Exit Do
Else Call Plugin.Msg.Tips("寻路中!!!当前角色所在坐标为"&s) //托盘信息提示还未到达指定坐标
End If
End If
Delay 500
Loop
End Function
Function 找字
Do
dm_ret = dm.FindStrFast(0, 0, w, h, "复活区", "ffe34a-000000", 0.9, intX, intY)
If intX >= 0 and intY >= 0 Then
TracePrint intX
TracePrint intY
Exit Do
Else
dm.keypress 9//按tab打开地图
End If
Delay 2000
loop
End Function
Function 识别当前地图名
Do
s = dm.Ocr(4,728,200,768, "ffffff-000000", 0.8)//识别当前地图名
If len(s) > 0 Then
TracePrint s
Select Case s
Case "土城"//地图名是"土城"则对当前地图最大坐标赋值
TracePrint "当前角色在土城"
地图最大X坐标=830
地图最大Y坐标 = 690
Case "客栈一楼"//地图名是"客栈一楼"则对当前地图最大坐标赋值
地图最大X坐标=27
地图最大Y坐标 = 31
// Case 其他···
End Select
Exit Do
End If
Delay 1000
Loop
End Function
Function 找句柄
For i = 0 To 20
hwnd = dm.FindWindow("GAME","神途")
Delay 2000
If hwnd > 0 Then
TracePrint hwnd
dm_ret = dm.GetClientSize(hwnd,w,h) //获取窗口客户区大小
TracePrint "游戏客户区宽度:" & w & ",高度:" & h
dm_ret = dm.SetWindowState(hwnd, 1)
Exit For
Elseif i >= 20 Then MsgBox"未检测到游戏窗口,请确认游戏窗口已经打开"
End If
Next
End Function
Function 注册大漠()
Dim i
//释放附件内容
PutAttachment "D:test", "*.*"
Set ws = createobject("Wscript.Shell")
For i = 0 To 20
//注册atl跟dm插件
ws.run("regsvr32 atl.dll -s")
ws.run ("regsvr32 D:testdm.dll -s")
Delay 200
Set ws = nothing
Set dm = createobject("dm.dmsoft")
ver = dm.ver()
//输出版本号
If ver <> "" Then
Exit For
End If
Next
If i >= 20 Then
TracePrint "大漠插件注册失败!"
EndScript
End If
Set dm = nothing
Delay 10
End Function
Function 大漠绑定
For i = 0 To 20
dm_ret = dm.BindWindowEx(hwnd, "dx2", "windows", "windows", "", 0)'绑定窗口
Delay 500
If dm_ret = 1 Then
TracePrint "绑定窗口成功"
Exit For
Elseif i>=20 Then TracePrint "绑定失败"
End If
Next
End Function
Sub OnScriptExit()//解绑大漠
dm_ret = dm.UnBindWindow()
End Sub
复制代码
效果演示
由于游戏窗口里录制的视频太大了,压缩后还是上传不了,还是只能用代码演示了
