触摸精灵帮助手册

1 基本使用

脚本存放路径:/var/touchelf/scripts/

1.1 如何录制

  1. 点击底部导航栏切换到“列表”界面
  2. 单击左上角的“新建”按钮, 在弹出的菜单中选择“录制”
  3. 在弹出的对话框中填写脚本名称, 然后点击“确定”按钮
  4. 切换到手机的任意界面, 按下音量键开始录制
  5. 做一些你想要录制的触摸动作
  6. 再次按下音量键停止录制

1.2 如何播放

  1. 点击底部导航栏切换到“列表”界面
  2. 单击想要播放的脚本
  3. 在弹出的对话框中设置播放参数, 然后选择“手动播放”或者“定时播放”
  4. 切换到手机的任意界面。如果选择的“手动播放”, 那么需要手动按下音量键开始播放; 如果选择的“定时播放”, 脚本会在设定的时间自动播放
  5. 脚本在播放完毕后会自动停止, 或在播放过程中再次按下音量键停止播放

1.3 如何编辑

  1. 点击底部导航栏切换到“列表”界面
  2. 单击想要编辑的脚本右侧的蓝色箭头”
  3. 在弹出的界面中直接编辑脚本文件
  4. 点击“保存”按钮保存脚本文件

1.4 如何注册

  1. 登录http://aisence.taobao.com, 按照里面的购买流程注册
  2. 点击“触摸精灵”的“设置”中的“序列号激活”, 输入淘宝获取到的序列号, 点击“激活”按钮
  3. 软件将自动下载注册文件到/var/touchelf/key, 重新进入“注册状态”, 显示已注册和“有效期”则成功

2 脚本语言

触摸精灵使用Lua语言作为底层脚本语言, 支持Lua 5.2版本的所有语法与基本库函数, 并在Lua语言的基础上添加了一些扩展函数, 用于发送触摸事件、找图、找色等高级功能的实现

触摸精灵的脚本中需要有且只有一个main函数,整个脚本是从这个函数开始执行的,示例

-- 脚本入口函数
-- 整个脚本从这个函数开始执行
-- 此函数在整个脚本中必须有且只有一个
function main()
    -- 其他代码
end
    

2.1 基本语法

用户可参考Lua的官方手册或者其他资料来学习以下基本语法:


2.2 脚本UI界面

用户可以通过在脚本中定义一个全局变量UI来实现定义脚本的配置界面, 该界面会在脚本运行前显示给用户, 用于让用户设置一些脚本的参数, 这些参数的值会赋值给指定的变量, 脚本运行时可以通过访问这些变量来获取用户的配置。下面是一个完整的例子:

UI = {
        { 'TextView{-请如实填写哦-}'                   },
        { 'InputBox{}',             'name',    '姓名:' },
        { 'DropList{帅哥|美女}',    'sex',     '性别:' },
        { 'InputBox{18}',           'age',     '年龄:' },
        { 'DropList{是|否}',        'married', '婚否:' },
};
function main()
        notifyMessage(string.format("姓名:%s\n性别:%s\n年龄:%s\n婚否:%s", name, sex, age, married));
end

    上述脚本播放前会显示一个如下界面:
    

    全局变量UI是一个Table类型的变量, 其中包含若干个子Table, 每一个子Table都是一个界面上的控件, 控件按照顺序自上而下排列, 目前支持3中类型的控件:

    1. TextView (静态文本)
       1.1 控件说明
           该类型的控件只用来显示一行文字, 不需要用户操作
       1.2 控件定义
           { 'TextView{显示的内容}' }
           这个Table只有一个字符串成员, 即'TextView{显示的内容}', 其中的TextView是指定此控件的类型为静态文本, {}中的内容即为该静态文本显示的内容

    2. InputBox (输入框)
       2.1 控件说明
           该类型的控件可以用于让用户输入一些内容, 并可以指定一个变量名, 脚本开始后通过该变量就可以访问到用户输入的内容
       2.2 控件定义
           { 'InputBox{默认值}', 'var', '注释' }
           这个Table中有3个字符串成员:
           * 'InputBox{默认值}', 其中的InputBox是指定此控件的类型为输入框, {}中的内容是该输入框中的默认值
           * 'var', 定义一个变量的名字, 脚本开始后可以通过访问这个变量来获取用户输入的内容
           * '注释', 显示在输入框上方, 用于说明该输入框的用途
       2.3 使用提示
           需要注意的是获取到的变量的值是默认是字符串类型, 你可以使用tonumber()函数来转换成数字类型来使用。例如
var = tonumber(var);

    3. DropList (下拉列表)
       3.1 控件说明
           该类型的控件可以用于让用户在指定的若干个值中选择其中一个, 并可以指定一个变量名, 脚本开始后通过该变量就可以访问到用户选择的内容
       3.2 控件定义
           { 'DropList{选项1|选项2|选项3|...}', 'var', '注释' }
           这个Table中有3个字符串成员:
           * 'DropList{选项1|选项2|选项3|...}', 其中的DropList是指定此控件的类型为下拉列表, {}中的内容是指定的若干个选项, 每个选项间用|分隔
           * 'var', 定义一个变量的名字, 脚本开始后可以通过访问这个变量来获取用户选择的内容
           * '注释', 显示在下拉列表上方, 用于说明该下拉列表的用途

*** 说明 ***
全局代码块(不包含在任何函数内的代码块)会在脚本的main()函数之前被调用, 所以可以在全局代码块中对UI变量进行动态的设置, UI变量是一个Table类型的变量, 可以使用Lua的Table库函数操作, 下面是一个操作UI变量的例子:


file = io.open("/var/touchelf/conf.txt"); -- 打开配置文件
data = file:read("*a");                   -- 读取全部内容
file:close();                             -- 关闭文件

UI = {
        { 'InputBox{'.. data .. '}', 'demo', '演示:' },
}

function main()
        notifyMessage(string.format("%s", demo));
end

2.3 扩展函数

logDebug()

函数说明: 输出调试信息到系统日志, 可以在“触摸精灵->设置->查看日志”中查看


mSleep()

函数说明: 进行毫秒级别延迟


notifyMessage()

函数说明: 以文字提示框的方式通知用户


notifyVibrate()

函数说明: 以震动方式通知用户


notifyVoice()

函数说明: 以播放音频的方式通知用户


touchDown()

函数说明: 发送手指按下事件


touchMove()

函数说明: 发送手指移动事件


touchUp()

函数说明: 发送手指抬起事件


keyDown()

函数说明: 发送物理按键按下事件


keyUp()

函数说明: 发送物理按键抬起事件


getColor()

函数说明: 获取指定像素的颜色


getColorRGB()

函数说明: 获取指定像素颜色的R、G、B三个值


findColor()

函数说明: 全屏找色


findColorFuzzy()

函数说明: 全屏模糊找色


findColorInRegion()

函数说明: 区域找色


findColorInRegionFuzzy()

函数说明: 区域模糊找色


findImage()

函数说明: 全屏找图


findImageFuzzy()

函数说明: 全屏模糊找图


findImageInRegion()

函数说明: 区域找图


findImageInRegionFuzzy()

函数说明: 区域模糊找图


snapshotScreen()

函数说明: 全屏截图


snapshotRegion()

函数说明: 区域截图


localOcrText()

函数说明: 进行本地图片识别


cloudOcrInit()

函数说明: 选择远程代答平台


cloudOcrText()

函数说明: 连接cloudOcrInit()选择的答题平台进行图片识别


cloudOcrTextEx()

函数说明: 将参数中指定的任意个数的图片合并成一个图片后, 连接cloudOcrInit()选择的远程答题平台进行图片识别


keepScreen()

函数说明: 开启/关闭屏幕保持。当开启屏幕保持时, 后续的找图、找色等函数不会重新获取屏幕图像, 而是使用开启屏幕保持之前的屏幕图像;当关闭屏幕保持时, 后续的找图、找色等函数会每次都重新获取屏幕图像。适当使用此函数可以优化脚本运行效率


rotateScreen()

函数说明: 旋转屏幕的坐标体系, 后续的找图、找色、截图、触摸动作都会使用新的坐标体系。


copyText()

函数说明: 复制文字到系统剪贴板, 以便后续粘贴


clipText()

函数说明: 获取系统剪贴板中之前复制或剪贴的文字内容


inputText()

函数说明: 输入字符串


appRun()

函数说明: 打开指定软件


appKill()

函数说明: 关闭指定软件


appRunning()

函数说明: 判断指定应用是否正在运行


httpGet()

函数说明: HTTP协议访问


ftpGet()

函数说明: ftp下载


ftpPut()

函数说明: ftp上传


memoryRead()

函数说明: 读取指定应用的内存


memoryWrite()

函数说明: 写入指定应用的内存


memorySearch()

函数说明: 搜索指定应用的内存,支持联合搜素,支持在上一次的搜索结果上再次搜索过滤


getScreenResolution()

函数说明: 获取当前屏幕分辨率


getScreenColorBits()

函数说明: 获取当前屏幕色彩位数


getDeviceID()

函数说明: 获取设备串号


getNetTime()

函数说明: 获取网络时间


getVersion()

函数说明: 获取当前触摸精灵版本号


fakeGPS()

函数说明: 为指定程序伪装GPS地理位置

调用该函数伪装地理位置以后,脚本停止以后伪装不会取消,直到使用该函数取消指定 应用的伪装,或执行『触摸精灵-设置-清除GPS伪装』清除设备所有伪装