AutoTouch 使用帮助中文版

操作指南

1. 概述
2. 用法
2.1. 怎样安装?
2.2. 怎样录制?
2.3. 怎样播放?
2.4. 怎样写一个脚本?
2.5. 怎样加密脚本?
2.6. 怎样从电脑上传脚本?
2.7. 怎样购买授权?
2.8. 怎样从商店中下载和购买脚本?
2.9. 怎样将您的脚本发布在商店中?
3. 脚本
3.1. 基础
3.2. 扩展函数
3.2.1. touchDown
3.2.2. touchMove
3.2.3. touchUp
3.2.4. tap
3.2.5. homeButtonDown
3.2.6. homeButtonUp
3.2.7. rootDir
3.2.8. usleep
3.2.9. log
3.2.10. alert
3.2.11. vibrate
3.2.12. screenshot
3.2.13. screenshotRegion
3.2.14. getScreenResolution
3.2.15. getScreenSize
3.2.16. getColor
3.2.17. findColor
3.2.18. findColorTap
3.2.19. findImage
3.2.20. findImageTap
3.2.21. appRun
3.2.22. appKill
3.2.23. appIsActive

1. 概述

AutoTouch用来录制和回放您在移动设备上的各种触摸和点击操作,它还可以运行事先用Lua语言写好的脚本,通过模拟人的触摸操作,来实现更多意想不到的功能。您可以用它自动玩游戏打怪赚取金币、批量编辑照片、进行程序自动化测试或者自动登入邮箱等等。

现在AutoTouch已经具备了录制和回放大多数人类操作的能力,比如触摸,点击Home实体键,点击音量实体键,点击声音开关实体键、锁屏实体键等等。并且达到了精确和顺滑的效果。它还提供了诸如截屏、区域截屏、颜色查找、颜色匹配、图片匹配等一些列扩展函数,具备了更大可挖掘的潜力。结合这些奇异的能力,能限制您的只有想象力了。

2.用法

2.1. 怎样安装?

1.确保您已经添加了BigBoss源到Cydia中;
2.在Cydia中搜索“AutoTouch”,找到并安装;
3.如果之前未安装过“Activator”插件,则安装AutoTouch时会自动安装此插件,该插件用于手势控制。请勿卸载它,否则AutoTouch会被一并卸载。


2.2. 怎样录制?

1.在任何您想开始录制的界面,长按音量减键(或您设置的其它Activator控制动作),来弹出控制面板,控制面板上包含一个录制按钮和一个脚本列表;
2.点击控制面板上的“录制”按钮,它将震动提示并开始录制;
3.接下来就请做您想做的触摸或其它操作了,比如打怪等;
4.当您想要停止录制时,长按音量减键(或前述的其它控制动作),直到弹出提示框显示“录制结束”,它会震动提示并停止;
5.接下来您就可以到AutoTouch中查看、管理或者播放刚才录制的脚本了。脚本默认用创建时间作为名称,你可修改为更友好的名称.


2.3. 怎样播放?

1.在您希望开始播放的界面,长按音量减键(或您设置的其它控制动作)来调出控制面板;
2.在控制面板上点击选择您想播放的脚本;
3.通常接下来(除非您曾将此脚本设置为直接播放)会弹出播放设置对话框以询问循环播放次数、间隔和速度;
4.点击“立即运行”后它将依据您刚才的设置立即进行播放,此时会有震动提示开始。播放完成后会自动停止并弹出对话框提示结束(您可在设置中关闭对话框提示)。您还可通过长按音量件键(或前述其它动作)来中断播放;
5.如果您点击了“稍后运行”,它将进入“准备运行”的状态,在此状态中,可通过点击(不是长按,不可修改)音量减键来重复多次地启动或中断播放,且不会有任何询问对话框再来打断您。再次长按(或前述其它动作)来退出“准备播放”状态;
6.您可在“播放设置”界面将脚本设为“直接播放”并为其设置默认的播放设置,这样当选择此脚本时将直接据此设置进行播放,不会再弹出播放设置对话框进行询问.


2.4. 怎样写一个脚本?

1.点击工具栏中间的“Action”按钮,选择“新建文件”即可打开脚本新建窗口;
2.在脚本编辑界面编写代码;
3.然后点击“保存”按钮并输入名称进行保存.


2.5. 怎样加密脚本?

1.在AutoTouch点击脚本,选择“加密”;
2.输入加密密码,无需密码留空即可;
3.点击确定即可完成加密,并生成一个同名但.lua.e结尾的加密文件.
4.可以选择加密脚本进行播放,设有密码的根据提示输入密码即可.


2.6. 怎样从电脑上传脚本?

确保WIFI打开并与电脑处于同一局域网内,点击工具栏中间的“Action”按钮,然后选择“上传”来打开上传界面,如启动成功,界面上会显示连接地址;
从电脑上用浏览器访问上一步得到的连接地址,即可在打开的界面进行上传.


2.7. 怎样购买授权?

点击“设置”界面的“授权”按钮来打开授权信息界面;
当打开授权信息界面时会进行授权验证;
如果授权验证失败,会显示支付按钮;
点击支付按钮会跳转到浏览器窗口并打开支付页面,请在那里完成支付。用支付宝支付的用户请务必在支付页面的“付款说明”中粘贴设备序列号;
当支付完成后,请在“设置”界面点击“授权”来验证;
当授权被验证后,您将获得无限播放时间和全部功能.


2.8. 怎样从商店中下载和购买脚本?

您可以直接从商店中下载所有的脚本;
有些脚本是经过密码加密的,你需要跟作者联系来购买密码;
脚本下载后会存放在你的脚本列表中,您可以像使用其它脚本一样直接使用.


2.9. 怎样将您的脚本发布在商店中?

您可以将脚本发布在商店中,以分享或销售给其他人;
如果只想分享脚本,可以直接上传.lua文件,如果不希望他人看到内容,可以进行无密码加密;
如果想在商店中出售脚本,可以将脚本进行加密,并设置密码。这样需要的人会联系您购买密码.


3. 脚本

3.1. 基础

您可以从这里学习Lua语言的使用:Lua Official Reference Manual.


3.2. 扩展函数

扩展函数用于扩展Lua语言,使具备模拟人类操作手机的一些能力。还提供截屏、颜色查找、颜色匹配、图片匹配等能力。


3.2.1. touchDown(id, x, y)

在屏幕的(x, y)坐标按下.

参数
id: 手指的编号,默认为0即可.
x: 屏幕x坐标.
y: 屏幕y坐标.
返回值

示例
touchDown(0, 100, 200); -- 在坐标(100, 200)处按下.


3.2.2. touchMove(id, x, y)

移动手指到(x, y)坐标.

参数
id: 手指的编号,默认为0即可.
x: 屏幕x坐标.
y: 屏幕y坐标.
返回值

示例
touchDown(0, 100, 200); -- 在坐标(100, 200)处按下.
touchMove(0, 200, 200); -- 移动手指到坐标(200, 200)处.


3.2.3. touchUp(id, x, y)

从(x, y)坐标抬起按下的手指.

参数
id: 手指的编号,默认为0即可.
x: 屏幕x坐标.
y: 屏幕y坐标.
返回值

示例
touchDown(0, 100, 200); -- 在坐标(100, 200)处按下.
touchMove(0, 200, 200); -- 移动手指到坐标(200, 200)处.
touchUp(0, 200, 200); -- 在坐标(200, 200)处抬起按下的手指.


3.2.4. tap(x, y)

点击坐标点(x, y).

参数
x: 屏幕x坐标.
y: 屏幕y坐标.
返回值

示例
tap(100, 200); -- 点击坐标点(100, 200).


3.2.5. homeButtonDown()

按下Home实体键.

参数

返回值

示例
homeButtonDown();
-- 按下Home键.


3.2.6. homeButtonUp()

抬起按下的Home键.

参数

返回值

示例
homeButtonUp();
-- 抬起按下的Home键.


3.2.7. rootDir()

获得脚本存放的默认地址.

参数

返回值
脚本存放的默认地址.
示例
local dirPath = rootDir();
-- dirPath = "/var/mobile/Library/AutoTouch/Scripts/"


3.2.8. usleep(microseconds)

停顿若干个微秒,即1/1000000秒.

参数
microseconds: 停顿多少微秒.
返回值

示例
usleep(1000000);
-- 停顿1秒


3.2.9. log(logContent)

记录日志,可在日志界面查看。

参数
logContent: 需要记录的日志内容.
返回值

示例
log("play here...");


3.2.10. alert(message)

弹出对话框显示指定内容.

参数
message: 需要显示的内容.
返回值

示例
alert("Hello world!");


3.2.11. vibrate()

震动一次.

参数

返回值

示例
vibrate(); -- 震动一次.


3.2.12. screenshot(filePath)

获取当前截屏并存在指定地址.

参数
filePath: 截屏要存放的地址
返回值

示例
screenshot("/var/screenshot1.png");


3.2.13. screenshotRegion(filePath, x, y, width, height)

获取指定区域的截屏,并存放在指定地址.

参数
filePath: 截屏要存放的地址
x: 截屏区域左上角x坐标.
y: 截屏区域左上角y坐标.
width: 截屏区域的宽度.
height: 解聘区域的高度.
返回值

示例
screenshotRegion("/var/screenshot2.png", 0, 0, 100, 100);
-- 对(0, 0, 100, 100)区域进行截屏并存放在指定地址.


3.2.14. getScreenResolution()

获取屏幕分辨率.

参数

返回值
width: 屏幕分辨率宽度.
height: 屏幕分辨率高度.
示例
local w, h = getScreenResolution();
-- 分辨率宽度是1136, 分辨率高度是640.


3.2.15. getScreenSize()

获取屏幕大小,这里是苹果坐标系的大小。视网膜屏就是分辨率除以二的值.

参数

返回值
width: 屏幕宽度.
height: 屏幕高度.
示例
local width, height = getScreenSize();
-- iPhone 5:宽是320, 高是568


3.2.16. getColor(x, y)

在当前屏幕获取指定坐标位置的颜色值.

参数
x: iOS坐标系中指定点的x坐标.
y: iOS坐标系中指定点的y坐标.
返回值
rgb: 指定坐标点的rgb颜色值.
示例
local rgb = getColor(100, 200);
alert("rgb:" .. rgb);
-- rgb:16777215


3.2.17. findColor(rgb, count)

在当前屏幕获取所有匹配指定颜色的坐标点. 注意: 您应当这样使用find(0x0000ff, 5), 而非这样:find(rgb=0x0000ff, count=5), 这与findImage函数不同, 因为findImage的参数整体是一个table.

参数
rgb: int类型的rgb值. (必需)
count: 最多查找多少个点,默认是0,表示查找所有匹配点。如果是1,表示查出第一个即可,若是2表示查出前两个即可。查找的个数越少速度会越快. (可选).
返回值
locations: 找到的点的坐标。比如:{{x1, y1}, {x2, y2}, ...}.
示例
local result = findColor(0x0000ff, 2);
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end


3.2.18. findColorTap(rgb, count)

该函数与findColor基本相同,区别在于findColorTap找到那些点并依次间隔0.016秒进行点击,并且不返回任何值.

参数
rgb: int类型的rgb值. (必需)
count: 最多查找多少个点,默认是0,表示查找所有匹配点。如果是1,表示查出第一个即可,若是2表示查出前两个即可。查找的个数越少速度会越快. (可选).
返回值

示例
findColorTap(0x0000ff, 2); -- 找到颜色为0x0000ff的前两个坐标点并依次间隔0.016秒点击它们.


3.2.19. findImage {imagePath, count, fuzzy, ignoreColors}

在当前屏幕查找匹配指定图片的区域,以table形式返回找到的所有区域的左上角坐标.

参数
imagePath: 需要查找的图片的路径. (必需)
count: 最多查找多少个区域,默认是0,表示查找所有匹配区域。如果是1,表示查出第一个即可,若是2表示查出前两个即可。查找的个数越少速度会越快. (可选).
fuzzy: 查找的模糊度,默认是1,表示完全匹配,0.5表示匹配50%的像素点即可. (可选)
ignoreColors: 在查找中需要无视的颜色值,以数组形式提供(table in lua). (可选).
返回值
locations: 匹配区域左上角坐标的数组. 比如: {{x1, y1}, {x2, y2}, ...}.
示例
-- 示例 1:
local result = findImage {imagePath="/var/spirit.png", count=5};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end

-- 示例 2:
local result = findImage {imagePath="/var/spirit.png", fuzzy=0.6};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end

-- 示例 3:
local result = findImage {imagePath="/var/spirit.png", ignoreColors={0xffffff, 0x2b2b2b}};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end

-- 示例 4:
local result = findImage {imagePath="/var/spirit.png", count=1, fuzzy=0.9, ignoreColors={0x0000ff}};
for i, v in pairs(result) do
log("x:" .. v[1] .. "y:" .. v[2]);
end


3.2.20. findImageTap {imagePath, count, fuzzy, ignoreColors}

该函数与findImage基本相同,区别在于findImageTap找到那些区域并依次间隔0.016秒进行点击,并且不返回任何值.

参数
imagePath: 需要查找的图片的路径. (必需)
count: 最多查找多少个区域,默认是0,表示查找所有匹配区域。如果是1,表示查出第一个即可,若是2表示查出前两个即可。查找的个数越少速度会越快. (可选).
fuzzy: 查找的模糊度,默认是1,表示完全匹配,0.5表示匹配50%的像素点即可. (可选)
ignoreColors: 在查找中需要无视的颜色值,以数组形式提供(table in lua). (可选).
返回值

示例
-- 示例 1:
findImageTap {imagePath="/var/spirit.png", count=5};

-- 示例 2:
findImageTap {imagePath="/var/spirit.png", fuzzy=0.6};

-- 示例 3:
findImageTap {imagePath="/var/spirit.png", ignoreColors={0xffffff, 0x2b2b2b}};

-- 示例 4:
findImageTap {imagePath="/var/spirit.png", count=1, fuzzy=0.9, ignoreColors={0x0000ff}};


3.2.21. appRun(appIdentifier)

用appIdentifier启动指定应用.

参数
appIdentifier: 应用标识,如"com.apple.mobilesafari". (必需)
返回值

示例
appRun("com.apple.mobilesafari");
-- 运行safari


3.2.22. appKill(appIdentifier)

用appIdentifier关闭指定应用.

参数
appIdentifier: 应用标识,如"com.apple.mobilesafari". (必需)
返回值

示例
appKill("com.apple.mobilesafari");
-- 关闭运行着的safari


3.2.23. appIsActive(appIdentifier)

检查指定应用是否处于活跃和打开的状态.

参数
appIdentifier: 应用标识,如"com.apple.mobilesafari". (必需)
返回值
ifAppIsActive: bool类型结果.
示例
b = appIsActive("com.apple.mobilesafari");
-- 检查App打开状态

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容