Contact Us

首页 资讯正文

Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」

发布者:yu发布时间:2025-02-19访问量:464

Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」

大家可能会遇到这样的情景:

#  也许你是一个通过App的销售人员,需要不断靠App的点击率来拿利润

#  也许你是一个个人开发者,想要自己写个脚本点击banner广告

#  也许你是一个业务经理,你的API是应用内某模块点击率超过X万次

…………

那么你就可以来看看这篇帖子了。

言归正传

利用bat脚本模拟用户操作,需要用到两点:

①就是adb命令了,adb命令可以用来模拟用户在手机上的操作

②bat语言,就是批处理语言,主要用来进行逻辑处理,跟众多语言语法一样,批处理语言也包括for循环、if语句之类的语法;


一、adb命令

首先我们来介绍模拟用户在手机上操作的adb命令

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

用法说明:

adb shell input keyevent “value”

usage: input ...
       input text <string> //在EditText中输入字符串
       input keyevent <key code number or name> //模拟back键、home键、音量键等操作
       input tap <x> <y> //模拟点击事件
       input swipe <x1> <y1> <x2> <y2> //模拟滑动事件

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

看看上面的这四个命令是不是已经满足你日常使用了呢?

先列举 input keyevent 几个比较常用的code值:

input keyevent 3    // Home

input keyevent 4    // Back

input keyevent 19  //Up

input keyevent 20  //Down

input keyevent 21  //Left

input keyevent 22  //Right

input keyevent 23  //Select/Ok

input keyevent 24  //Volume+

input keyevent 25  // Volume-

input keyevent 82  // Menu 菜单


下面来举个栗子:

①你可以先进入到adb shell中,再执行input keyevent "value",如下,看看是不是执行了home键的操作呢:

②你也可以不进入adb shell中,直接执行(在bat脚本中写的时候当然要用这种啦~),如下: 

 
 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

【快速获取想要点击图标像素点的技巧:】

想要点击某个button,但是怎么快速获取该button的像素位置呢?

一般Android在[设置--高级设置--开发者选项]中,或者[设置--开发人员选项]中,有“指针位置”这一项,打开该开关

如上图,方框的位置就是你所点击的区域坐标点,注意,原坐标[0, 0]就是手机屏幕的左上角。

还有一点,如果你在屏幕滑动了一段距离,你想知道滑动距离的坐标数值差,也可以看到:

就是上图中的红色数值,[dX, dY]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


二、bat语言,批处理语言

1,基础语法

    ①.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。
    ②.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。
    ③.批处理的编程能力远不如C语言等编程语言,也十分不规范。
    ④.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行。
    ⑤.C:AUTOEXEC.BAT 是每次系统启动时都会自动运行的,可以将每次启动时都要运行的命令放入该文件中。
    ⑥.大小写不敏感(命令符忽略大小写)
    ⑦.批处理的文件扩展名为 .bat 或 .cmd。
    ⑧.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe来运行该文件。

2,如何执行批处理文件

    新建一个txt文本文件,写完代码之后,保存为XXX.bat文件,然后双击该文件就行~~~

3,先来几个常用的语法:

①注释:Rem或::

 
②打印个log啥的:echo命令 

 语法: echo [{on|off}] [message]

       默认是on,on时会显示如下Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」

 
 
③ @命令 

表示不显示@后面的命令,(在入侵过程中自然不能让对方看到你使用的命令啦)

@ 与 echo off 相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

 

④ title 命令

给cmd窗口设置title

设置前: 
Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」 

设置后: Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」

⑤ color命令:设置背景及字体颜色

   语法: color bf
   b 是指定背景色的十六进制数字; f 指定前景颜色(即字体颜色)。
   颜色值:     0:黑色    1:蓝色    2:绿色    3:湖蓝    4:红色    5:紫色    6:黄色    7:白色
               8:灰色    9:淡蓝    A:淡绿    B:浅绿    C:淡红    D:淡紫    E:淡黄    F:亮白
   如果没有给定任何参数,该命令会将颜色还原到 CMD.EXE 启动时的颜色。
   如果两参数一样,视为无效输入。只有一个参数时,设置字体。

⑥ Pause命令:

可以自己试一下,挺有用的功能,会暂停批处理的执行并在屏幕上显示Press any key to continue...的提示,等待用户按任意键后继续

⑦打开某网站

 
⑧延时执行下一句语句: 

执行该语句,就会延迟执行N-1秒 



4,For语句

For语句是比较重要的语法,网上已经有很多人做了各种解释说明,我就不再做重复的轮子了,找了两篇介绍的比较清楚易懂的for语句帖子供大家交流:

http://blog.csdn.net/pigchan/article/details/5066098

http://www.jb51.net/article/17908.htm


5,Set语句

同上,set语句的帖子:http://blog.csdn.net/anye3000/article/details/8443738


6,If语句

if 表示将判断是否符合规定的条件,从而决定执行不同的命令。有三种格式:
  ① IF
     语法: if [not] "参数" == "字符串" 待执行的命令
     参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号)

 
  ② if exist
     语法: if [not] exist [路径]文件名 待执行的命令
     如果有指定的文件,则条件成立,运行命令,否则运行下一句。

 
  3) if errorlevel number
     语法: if [not] errorlevel <数字> 待执行的命令
     如果程序返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。(返回值必须按照从大到小的顺序排列)

 
     很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),称为错误码errorlevel或称返回码。
     常见的返回码为0、1。通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令。
  ④ else
     语法: if 条件 (成立时执行的命令) else (不成立时执行的命令)
     如果是多个条件,建议适当使用括号把各条件包起来,以免出错。

 
     注:如果 else 的语句需要换行,if 执行的行尾需用“^”连接,并且 if 执行的动作需用(括起来),否则报错
 
  ⑤ 比较运算符:
     EQU - 等于   (一般使用“==”)
     NEQ - 不等于 (没有 “!=”,改用“ if not 1==1 ”的写法)
     LSS - 小于
     LEQ - 小于或等于
     GTR - 大于

     GEQ - 大于或等于


7,Goto语句

语法:goto label (label是参数,指定所要转向的批处理程序中的行。)
  指定跳转到标签行,找到标签行后,程序将处理从下一行开始的命令。
  label标签的名字可以随便起,但是最好是有意义的,字母前必须加个冒号“:”来表示这个字母是标签。
  goto命令就是根据这个冒号来寻找下一步跳到到那里。经常与 if 配合使用,根据不同的条件来执行不同的命令组。

 

8,Call语句

Call 命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后再继续执行原来的批处理,类似于java中的方法调用,还可以传递参数,跟goto语句还是有区别的。

语法: call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
  参数: [Drive:][Path] FileName  指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名。
  调用另一个批处理程序,并且不终止父批处理程序。
  如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令。
  call 命令接受用作调用目标的标签。如果在脚本或批处理文件外使用 Call,它将不会在命令行起作用。

 

请参考如下帖子:http://blog.csdn.net/stpeace/article/details/9041453


三、举个栗子

下面来举个栗子,是一个循环自动登录的功能,从一个文档中,提取用户名、密码,把用户名密码一次输入App的EditText中,最后点击登录。

首先,登录界面如下:

Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」

然后呢,我们准备了10条数据,别人给我的时候是存在excel表里的,如下

Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」

为了能让脚本方便调用,我们把它转存为txt文件,文件名为data.txt
Android手机上,利用bat脚本模拟用户操作手机如何打开exe文件「Android手机上,利用bat脚本模拟用户操作」

好了,前期工作准备完毕,现在看下代码怎么写的: