【按键精灵】手机号码的数字键模拟真人点击

最简单的方法就是先获取0-9这10个数字的位置坐标,然后把要输入的数字号码段逐一分开,获取单个数字后点击数字对应的位置。

Dim num="1321234567890"
Dim points={{150,651},{264,648},{390,651},{156,745},{284,737},{396,739},{161,831},{259,829},{368,830},{267,906}}
Dim n
TracePrint len(num)
For i = 1 To Len(CStr(num))
    n = CInt(Mid(CStr(num), i, 1))
    If n = 0 Then 
        n=10
    End If
    TracePrint points[n][1],points[n][2]
    Tap points[n][1],points[n][2]
Next

这段代码基本是通用的,需要修改两个变量的内容:

①要输入的数字号码段,可以是数值类型,也可以是字符串类型,因为我做强制转换的操作。

②每个数字的坐标,一共10个数字,用二维数组保存


{   {},{},{}   }

基本形式是一个大括号包裹10个大括号。

这里边有些细节需要注意:

0-9一共10个坐标,我们填写的时候按照什么顺序?

有两种排列方法:

一是:0123456789

二是:1234567890,这个0可以代表10

这个顺序为啥值得注意呢?

坐标是存在二维数组(列表),那么就存在一个列表索引,索引是从1开始,为了匹配这个,我的代码选择了第二个顺序排列,也就是从1-10(0)的顺序。

这样获取的当个顺序就直接作为列表的索引,只是当数字是0的时候需要处理一下,让0变成10。

这里可能有些朋友不知道索引,我把格式改一下 


Dim points={1:{150,651},2:{264,648},3:{390,651}}

这里面的123就是索引,通常来说是可以省略的。

比如说我想要获取索引3的第一个坐标,可以这样写:

Dim points={1:{150,651},2:{264,648},3:{390,651}}
TracePrint points[3][1]

对于索引是数字的我们是可以省略,如果“索引”不是数字呢,是字母要怎么写呢?

同样是获取第三组坐标的第一个值:

Dim points={"a":{150,651},"b":{264,648},"c":{390,651}}
TracePrint points["c"][1]

这种写法其实不叫索引了,如果你仔细看我上面索引加了引号了,那么这种写法叫什么?叫键值对。

a叫键名,{150,651}叫键值

这三组键值对其实就是把abc的坐标存入了二维数组,如果我们扩展一下把26个字母都存入进来,是不是就可以用来模拟输入英文单词了。

转载自微信公众号:3分钟学堂

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注