按键精灵脚本怎么用在其他电脑(「按键精灵脚本讲解」多开模拟器读取同一文本不重复)

大家好,我是公众号3分钟学堂的郭立员,今天带了的是一个多开模拟器读取文本时内容不重复的教程。


使用场景


多模拟器登录app,账号密码保存在同一个文本中,读取方式是读一行删一行,理论上来说是没问题,但是实际操作会出现多个模拟器读取到同一个账号密码,这期代码就是解决这个问题的。


按键精灵脚本怎么用

实现原理


我把读取文本的过程分成几个阶段:先报名、再排队,最后依次读取。


具体来讲是这样的,“先报名”就是模拟器把自己的序号(imsi码)传入到共享文件夹里面,“再排队”是按照先后顺序把模拟器的imsi码写入到文本里面,“依次读取”指的是从存imsi文本中的第一个imsi码的模拟器开始读取,第一个读完了,第二个读,依次类推。


代码过程


①获取模拟器的imsi码

Dim imsi=Device.GetImsi()


②新建一个imsi存储文本

If dir.Exist("/sdcard/pictures/imsi.txt")=0 Then file.write ("/sdcard/pictures/imsi.txt") End If


③使用追加命令把模拟式imsi码写入文本

file.Append "/sdcard/pictures/imsi.txt", imsi & "n"


④读取文本中的imsi码

dim arr=file.ReadLines("/sdcard/pictures/imsi.txt")


⑤判断读取文本后的imsi中,第一个是不是本机imsi码

If arr(0) = imsi Then


⑥如果上一步判断成立,开始执行读取文本,已经读后删除文本

Dim txt=file.readline("/sdcard/pictures/a.txt",1)             Delay 50 file.DeleteLine "/sdcard/pictures/a.txt", 1 Delay 50


⑦删除imsi文本中第一个imsi码,这个过程表示当前模拟器读取完成,其他模拟器就可以读取文本了。

file.DeleteLine "/sdcard/pictures/imsi.txt", 1


⑧假设第⑤步的判断不成立,也就是有别的模拟器排在前面,那么就要循环第④至⑦步,一直轮到当前模拟器可以读取文本为止,同时退出循环。


核心内容


通常我们使用多模拟器的时候会用到模拟器自带的同步器功能,这个时候只需要操作一个模拟器,其他模拟器就和它完成同样的操作,当我们使用同步器启动脚本时,所有脚本同时开启,同一时间读取文本,这个时候就会出现同一个账号密码被多个模拟器读取。


我们这期文章中使用了一个“缓冲”文本,先把要读取的模拟器imsi码存起来,然后按顺序执行,就把原本的“同步读取”变成了“异步读取”,有效防止脚本读取到重复的文本。


备注


本期这个操作逻辑的代码,我封装测试了4个模拟器多开使用正常。对于更多数量的测试如果有问题可以在文章下方留言。

您可以还会对下面的文章感兴趣

使用微信扫描二维码后

点击右上角发送给好友