触摸精灵操作手册_1922_第1页
触摸精灵操作手册_1922_第2页
触摸精灵操作手册_1922_第3页
触摸精灵操作手册_1922_第4页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2 脚本语言触摸精灵使用 Lua 语言作为底层脚本语言 , 支持 Lua 5.2 版本的所有语法与基本库函数 , 并在 Lua 语言的基础上添加了一些扩展函数 , 用于发送触摸事件、 找图、找色等高级功能的实现触摸精灵的脚本中需要有且只有一个 main 函数,整个脚本是从这个函数开始执行的,示例- 脚本入口函数- 整个脚本从这个函数开始执行- 此函数在整个脚本中必须有且只有一个function main()- 其他代码end2.1 基本语法用户可参考 Lua 的官方手册 或者其他资料来学习以下基本语法:注释变量与类型运算符赋值条件控制循环控制函数定义库函数等等2.2 脚本 UI 界面用户可以通

2、过在脚本中定义一个全局变量 UI 来实现定义脚本的配置界面 , 该界面会在脚本运行前显示给用户 , 用于让用户设置一些脚本的参数 , 这些参数的值会赋值给指定的变量 , 脚本运行时可以通过访问这些变量来获取用户的配置。下面是一个完整的例子:UI= 'TextView-请如实填写哦-', 'InputBox', 'DropList 'InputBox18', 'DropList'name','帅哥|美女'age','是| 否',','sex','

3、married', ''姓名 :' ,性别 :' ,年龄 :' ,婚否 :' ,;function main()notifyMessage(string.format("姓名 :%sn性别:%sn年龄 :%sn婚否 :%s",name, sex, age, married);end上述脚本播放前会显示一个如下界面:全局变量 UI 是一个 Table 类型的变量 , 其中包含若干个子是一个界面上的控件 , 控件按照顺序自上而下排列 , 目前支持Table,每一个子3 中类型的控件:Table都1. TextView (静

4、态文本 )1.1控件说明该类型的控件只用来显示一行文字,不需要用户操作1.2控件定义 'TextView显示的内容' 这个 Table只有一个字符串成员TextView是指定此控件的类型为静态文本, 即 'TextView显示的内容 ',中的内容即为该静态文本显示的内容其中的2. InputBox (输入框)2.1控件说明该类型的控件可以用于让用户输入一些内容,并可以指定一个变量名,脚本开始后通过该变量就可以访问到用户输入的内容2.2控件定义 'InputBox默认值', 'var', '注释' 这个Table中有

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

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

7、拉列表的用途*说明 *全局代码块 (不包含在任何函数内的代码块 )会在脚本的 main()函数之前被调用 , 所以可以在全局代码块中对 UI 变量进行动态的设置 , UI 变量是一个 Table类型的变量 , 可以使用 Lua 的 Table库函数操作 , 下面是一个操作 UI 变量的例子:file = io.open("/var/touchelf/conf.txt"); -打开配置文件data = file:read("*a");-读取全部内容file:close();-关闭文件UI= 'InputBox'. data . '&

8、#39;, 'demo', '演示 :' ,function main()notifyMessage(string.format("%s", demo);end2.3 扩展函数logDebug()函数说明 : 输出调试信息到系统日志 , 可以在 “触摸精灵 ->设置 ->查看日志 ”中查看参数参数 1 (字符串 ) : 调试信息返回值无示例logDebug("hello"); -输出 "hello"到系统日志mSleep()函数说明 : 进行毫秒级别延迟参数参数 1(数字): 毫秒数返回值无

9、示例mSleep(1000); -延迟 1 秒notifyMessage()函数说明 : 以文字提示框的方式通知用户参数参数 1 (字符串 ) : 提示文字参数 2 (数字 , 可选 ) : 显示的时间 , 单位为毫秒 , 默认为 1000返回值无示例notifyMessage("hello");-在屏幕上显示"hello"notifyMessage("hello", 5000); -在屏幕上显示"hello",显示 5 秒notifyVibrate()函数说明 : 以震动方式通知用户参数参数 1(数字): 毫秒数

10、返回值无示例notifyVibrate(1000); -让设备震动1 秒notifyVoice()函数说明 : 以播放音频的方式通知用户参数参数 1 (字符串 ) : 音频路径返回值无示例notifyVoice("/var/touchelf/a.mp3"); -播放路径为 "/var/touchelf/a.mp3"的音频touchDown()函数说明 : 发送手指按下事件参数参数1 ( 数字 ) : 手指ID, 范围0128, 用于标识一个手指, 在后续的touchMove() 和 touchUp() 中需要使用参数 2(数字):X 坐标参数 3(数字)

11、:Y 坐标返回值无示例touchDown(0, 100, 100); - ID为 0 的手指在坐标为(100, 100)的点按下touchUp(0);- ID为 0 的手指抬起touchMove()函数说明 : 发送手指移动事件参数参数 1 (数字 ) : touchDown() 时传入的手指ID参数 2(数字):X 坐标参数 3(数字):Y 坐标返回值无示例touchDown(0, 100, 100); - ID为 0的手指在坐标为 (100, 100)的点按下touchMove(0, 200, 100); - ID为 0的手指滑动到坐标为 (200, 100)的点touchUp(0);-

12、ID为 0 的手指抬起touchUp()函数说明 : 发送手指抬起事件参数参数 1 (数字 ) : touchDown() 时传入的手指ID返回值无示例touchDown(0, 100, 100); - ID为0的手指在坐标为(100, 100)的点按下touchUp(0);- ID为 0 的手指抬起keyDown()函数说明 : 发送物理按键按下事件参数参数 1 (字符串 ) : 物理键名称 , IOS 触摸精灵现在支持的有'HOME'返回值无示例keyDown('HOME'); - HOME键按下keyUp('HOME');- HOME键抬起

13、keyUp()函数说明 : 发送物理按键抬起事件参数参数 1 (字符串 ) : 物理键名称 , IOS 触摸精灵现在支持的有'HOME'返回值无示例keyDown('HOME'); - HOME键按下keyUp('HOME');- HOME键抬起getColor()函数说明 : 获取指定像素的颜色参数参数参数1(数字):X2(数字):Y坐标坐标返回值返回值1(数字):颜色值示例c = getColor(100, 100); if c = 0x0000ff then-将坐标为 (100,100)的点的颜色保存在变量如果该点颜色为0x0000ff(纯

14、蓝色 )c 中touchDown(0, 100, 100);-那么点击该坐标touchUp(0);endgetColorRGB()函数说明 : 获取指定像素颜色的R、 G、B 三个值参数参数 1(数字):X 坐标参数 2(数字):Y 坐标返回值返回值 1(数字):R返回值 2(数字):G返回值 3(数字):B示例r, g, b = getColorRGB(100, 100);-将坐标为 (100,100)的点的颜色的 R、 G、 B 分别保存在变量r 、 g 、 b 中if r = 0x00 and b = 0x00 and g = 0xff then -如果该点颜色为0x0000ff(纯蓝色

15、 )touchDown(0, 100, 100);-那么点击该坐标touchUp(0);endfindColor()函数说明 : 全屏找色参数参数 1 (数字 ) : 要找的颜色返回值返回值 1 (数字 ) : X 坐标 , 如果没找到返回-1返回值 1 (数字 ) : Y 坐标 , 如果没找到返回-1示例x, y = findColor(0x0000ff); -在全屏范围找到第一个颜色为0x0000ff的点 ,将其坐标保存到变量x 和 y 中if x = -1 and y = -1 then -如果找到了touchDown(0, x, y);-点击那个点touchUp(0);endfindC

16、olorFuzzy()函数说明 : 全屏模糊找色参数参数 1 (数字 ) : 要找的颜色参数 2 (数字 ) : 精确度 , 有效范围为1100返回值返回值1(数字):X坐标 ,如果没找到返回-1返回值1(数字):Y坐标 ,如果没找到返回-1示例x, y = findColorFuzzy(0x0000ff, 90); -在全屏范围找到第一个颜色为0x0000ff的点 ,精确度为90%,将其坐标保存到变量x 和 y中if x = -1 and y = -1 then-如果找到了touchDown(0, x, y);-点击那个点touchUp(0);endfindColorInRegion()函数

17、说明 : 区域找色参数参数参数参数参数参数1(数字):2(数字):3(数字):4(数字):5(数字):要找的颜色区域左上角区域左上角区域右下角区域右下角X 坐标Y 坐标X 坐标Y 坐标返回值返回值1(数字):X坐标 ,如果没找到返回-1返回值1(数字):Y坐标 ,如果没找到返回-1示例x, y = findColorInRegion(0x0000ff, 100, 100, 200, 200); -(100,100)(200,200)范围找到第一个颜色为0x0000ff的点 ,在区域将其坐标保存到变量x 和y 中if x = -1 and y = -1 thentouchDown(0, x, y

18、);-如果找到了点击那个点touchUp(0);endfindColorInRegionFuzzy()函数说明 : 区域模糊找色参数参数参数参数1(数字):2(数字):3(数字):要找的颜色精确度 , 有效范围为区域左上角X 坐标1100参数 4 (数字 ) : 区域左上角Y 坐标参数 5 (数字 ) : 区域右下角X 坐标参数 6 (数字 ) : 区域右下角Y 坐标返回值返回值 1 (数字 ) : X 坐标 , 如果没找到返回-1返回值 1 (数字 ) : Y 坐标 , 如果没找到返回-1示例x, y = findColorInRegionFuzzy(0x0000ff, 90, 100, 1

19、00, 200, 200); -在区域 (100,100)(200,200)范围找到第一个颜色为0x0000ff的点 ,精确度为90%,将其坐标保存到变量x 和 y 中if x = -1 and y = -1 then-如果找到了touchDown(0, x, y);-点击那个点touchUp(0);endfindImage()函数说明 : 全屏找图参数参数 1 (字符串 ) : 要找的图片的路径, 只支持 BMP 格式参数 2 (数字 , 可选 ) : 指定图片中透明颜色返回值返回值 1 (数字 ) : X 坐标 , 如果没找到返回-1返回值 1 (数字 ) : Y 坐标 , 如果没找到返回

20、-1示例x, y = findImage("/var/touchelf/a.bmp"); -在全屏范围找到第一个路径为"/var/touchelf/a.bmp"的图片 ,将其左上角坐标保存到变量x 和 y 中if x = -1 and y = -1 then-如果找到了touchDown(0, x, y);-点击那个点touchUp(0);endx, y = findImage("/var/touchelf/a.bmp", 0x000000); -在全屏范围找到第一个路径为 "/var/sdcar/a.bmp"的图

21、片 ,忽略图片中颜色为0x000000(黑色)的点,将其左上角坐标保存到变量x 和 y 中if x = -1 and y = -1 then-如果找到了touchDown(0, x, y);-点击那个点touchUp(0);endfindImageFuzzy()函数说明 : 全屏模糊找图参数参数参数参数1 (字符串 ) : 要找的图片的路径, 只支持2 (数字 ) : 精确度 , 有效范围为11003 (数字 , 可选 ) : 指定图片中透明颜色BMP格式返回值返回值1(数字):X坐标 ,如果没找到返回-1返回值1(数字):Y坐标 ,如果没找到返回-1示例x, y = findImageFuz

22、zy("/var/touchelf/a.bmp", 90); -路径为 "/var/sdcar/a.bmp"的图片 ,精确度为if x = -1 and y = -1 then-touchDown(0, x, y);-touchUp(0);end90,在全屏范围找到第一个将其左上角坐标保存到变量x 和 y 中如果找到了点击那个点x, y = findImageFuzzy("/var/touchelf/a.bmp", 90, 0x000000); -在全屏范围找到第一个路径为"/var/sdcar/a.bmp"的图片

23、 ,精确度为90,忽略图片中颜色为0x000000(黑色)的点,将其左上角坐标保存到变量x 和 y中if x = -1 and y = -1 thentouchDown(0, x, y);-如果找到了点击那个点touchUp(0);endfindImageInRegion()函数说明 : 区域找图参数参数参数参数参数参数参数1 (字符串 ) : 要找的图片的路径, 只支持2 (数字 ) : 区域左上角X 坐标3 (数字 ) : 区域左上角Y 坐标4 (数字 ) : 区域右下角X 坐标5 (数字 ) : 区域右下角Y 坐标6 (数字 , 可选 ) : 指定图片中透明颜色BMP格式返回值返回值1(

24、数字):X坐标 ,如果没找到返回-1返回值1(数字):Y坐标 ,如果没找到返回-1示例x,y = findImageInRegion("/var/touchelf/a.bmp",100,100,200,200);-在区域 (100,100)(200,200) 其左上角坐标保存到变量x 和y范围找到第一个路径为中"/var/sdcar/a.bmp"的图片,将if x = -1 and y = -1 then-如果找到了touchDown(0, x, y);-点击那个点touchUp(0);endx, y = findImageInRegion("

25、/var/touchelf/a.bmp", 100, 100, 200, 200,0x000000); -在区域 (100,100)(200,200)范围找到第一个路径为"/var/sdcar/a.bmp"的图片 ,忽略图片中颜色为0x000000(黑色)的点,将其左上角坐标保存到变量x 和 y 中ifx = -1andy = -1then-如果找到了touchDown(0, x, y);- 点击那个点touchUp(0);endfindImageInRegionFuzzy()函数说明 : 区域模糊找图参数参数 1 (字符串 ) : 要找的图片的路径 , 只支持

26、BMP 格式参数 2 (数字 ) : 精确度 , 有效范围为 1100参数 3(数字 ) : 区域左上角 X 坐标参数 4(数字 ) : 区域左上角 Y 坐标参数 5(数字 ) : 区域右下角 X 坐标参数 6(数字 ) : 区域右下角 Y 坐标参数 7 (数字 , 可选 ) : 指定图片中透明颜色返回值返回值1 (数字 ) : X 坐标 , 如果没找到返回 -1返回值1 (数字 ) : Y 坐标 , 如果没找到返回 -1示例x, y =findImageInRegionFuzzy("/var/touchelf/a.bmp",90,100,100,200,200); -在区

27、域 (100,100)(200,200)范围找到第一个路径为 "/var/sdcar/a.bmp"的图片 ,精确度为 90,将其左上角坐标保存到变量x 和 y 中if x =-1 and y = -1 then-如果找到了touchDown(0,x,y);-点击那个点touchUp(0);endx, y =findImageInRegionFuzzy("/var/touchelf/a.bmp",90,100,100,200,200, 0x000000); -在区域 (100,100)(200,200)范围找到第一个路径为"/var/sdcar/

28、a.bmp"其左上角坐标保存到变量的图片x 和 y,精确度为中90,忽略图片中颜色为0x000000(黑色)的点 ,将if x = -1 and y = -1 then-如果找到了touchDown(0, x, y);-点击那个点touchUp(0);endsnapshotScreen()函数说明 : 全屏截图参数参数 1 (字符串 ) : 保存截图的路径 , 支持 BMP 格式和 JPG 格式 , 根据文件名后缀智能判断参数 2 (数字 , 可选 ) : 图片尺寸缩放百分比, 有效范围为10100, 默认为 100返回值无示例snapshotScreen("/mnt/sd

29、card/a.bmp"); -将全屏截图保存到路径为"/mnt/sdcard/a.bmp"的图片中 ,格式为 BMPsnapshotScreen("/mnt/sdcard/a.jpg, 50"); -将全屏截图保存到路径为"/mnt/sdcard/a.jpg"的图片中 ,格式为 JPG,并且尺寸缩小为原始尺寸的50%snapshotRegion()函数说明 : 区域截图参数参数 1 (字符串 ) : 保存截图的路径, 支持 BMP 格式和 JPG 格式 , 根据文件名后缀智能判断参数 2 (数字 ) : 区域左上角X 坐标参

30、数 3 (数字 ) : 区域左上角Y 坐标参数 4 (数字 ) : 区域右下角X 坐标参数 5 (数字 ) : 区域右下角Y 坐标参数 6 (数字 , 可选 ) : 图片尺寸缩放百分比, 有效范围为10100,默认为100返回值无示例snapshotRegion("/mnt/sdcard/a.bmp", 100, 100, 200, 200); -将区域(100,100)(200,200)的截图保存到路径为/mnt/sdcard/a.bmpsnapshotRegion("/mnt/sdcard/a.jpg", 100, 100, 200, 200, 50

31、); -的图片中,格式为 BMP将区域(100,100)(200,200)的截图保存到路径为/mnt/sdcard/a.jpg的图片中,格式为JPG,并且尺寸缩小为原始尺寸的50%localOcrText()函数说明 : 进行本地图片识别参数参数1(字符串):语 言 包下载语言包tessdata 目 , 将解压后的录的路径(在tessdata目录复制到设备中 )参数 2 (字符串) :语言类型'eng' : 英文语言类型'chi_sim' : 中文语言类型参数参数参数参数参数3(数字):4(数字):5(数字):6(数字):7 (字符串 ,待识别图片区域的左上角X

32、 坐标待识别图片区域的左上角Y 坐标待识别图片区域的右下角X 坐标待识别图片区域的右下角Y 坐标可选 ) : 设置白名单 , 只有白名单中的字符才会被识别返回值返回值1 (字符串) :图片识别后得到的答案, 失败的话返回空字符串示例code = localOcrText("/mnt/sdcard/Touchelper/tessdata", -tessdata目录在设备中的路径语言包"eng", -100, -100, -200, -200); -语言类型为中文图片左上角X 坐标为图片左上角Y 坐标为图片右下角X 坐标为图片右下角Y 坐标为10010020

33、0200if code = "" thennotifyMessage("识别失败elsenotifyMessage(string.format("end");识别成功: %s", code);code = localOcrText("/mnt/sdcard/Touchelper/tessdata", -语言包tessdata目录在设备中的路径"eng", -语言类型为中文100,-图片左上角X 坐标为 100100,-图片左上角Y 坐标为 100200,-图片右下角X 坐标为 200200,-图

34、片右下角Y 坐标为 200"0123456789"); -设置白名单字符串,只识别数字if code = "" thennotifyMessage("识别失败 ");elsenotifyMessage(string.format("识别成功 : %s", code);endcloudOcrInit()函数说明 : 选择远程代答平台参数参数 1(数字 ) : 远程代答平台 ID, 默认为 00: 好爱答题 1: 打码兔答题 返回值无示例cloudOcrInit(1); -设置远程代答平台为打码兔cloudOcrTex

35、t()函数说明 : 连接 cloudOcrInit() 选择的答题平台进行图片识别参数参数 1 (字符串 ) : 用户名及密码, 根据不同平台分别设置为:好爱答题 : 密码串注册并登陆后 , 在会员中心获取 ), 如 username|9CF16235AD9EFBD3F233265DF9400E6A打码兔答题: 用户名 |密码 , 如 username|password参数参数参数参数参数2 (字符串 ) : 题目类型 , 请前往选择的代答平台的官网查询3 (数字 ) : 待识别图片区域的左上角X 坐标4 (数字 ) : 待识别图片区域的左上角Y 坐标5 (数字 ) : 待识别图片区域的右下角

36、X 坐标6 (数字 ) : 待识别图片区域的右下角Y 坐标参数7 (数字 ) : 超时时间 , 范围为 20-600 秒返回值返回值1 (字符串) :图片识别后得到的答案, 失败的话返回空字符串示例cloudOcrInit(0);-选择代答平台为好爱答题code= cloudOcrText("username|PASSWORDAD9EFBD3F233265DF9400E6A", -好爱答题参数1 为密码串注册并登陆后,在会员中心获取)"1004", -题目类型为"1004"(4位数字字母)100, -图片左上角X坐标为100100,-

37、图片左上角 Y坐标为 100200,-图片右下角 X坐标为 200200,-图片右下角 Y坐标为 200600); -超时时间为600 秒if code = "" thennotifyMessage("识别失败 ");elsenotifyMessage(string.format("识别成功 : %s", code);endcloudOcrTextEx()函数说明 : 将参数中指定的任意个数的图片合并成一个图片后 , 连接 cloudOcrInit() 选择的远程答题平台进行图片识别参数参数 1 (字符串 ) : 用户名及密码, 根据

38、不同平台分别设置为:好爱答题: 密码串注册并登陆后, 在会员中心获取 ), 如 username|9CF16235AD9EFBD3F233265DF9400E6A 打码兔答题 : 用户名 |密码 , 如 username|password参数 2 (字符串 ) : 题目类型 , 请前往选择的代答平台的官网查询参数 3 (数字 ) : 超时时间 , 范围为 20-600 秒参数 4 (字符串 ) : 待合并的第一个图片的路径参数 5 (字符串 ) : 待合并的第二个图片的路径.参数 N ( 字符串 ) : 待合并的第N 个图片的路径返回值返回值1 (字符串) :图片识别后得到的答案, 失败的话返

39、回空字符串示例snapshotScreen("/var/touchelf/1.bmp");-将屏幕截图为 /var/touchelf/1.bmp图片snapshotScreen("/var/touchelf/2.bmp");-将屏幕截图为 /var/touchelf/2.bmp图片-下面的代码将1.bmp和 2.bmp合并成一个图片后- 发送到打码兔远程代答平台进行图片识别-cloudOcrInit(1);-code= cloudOcrText("username|password", -选择代答平台为打码兔答题打码兔答题参数1 为&

40、quot; 用户名|密码""1004", -题目类型为 "1004"(4位数字字母 )600, -超时时间为600 秒"/var/touchelf/1.bmp", -待合并的第一个图片"/var/touchelf/2.bmp", -待合并的第二个图片"/var/touchelf/3.bmp"); -待合并的第三个图片if code = "" thennotifyMessage("识别失败 ");elsenotifyMessage(string.f

41、ormat("识别成功 : %s", code);endkeepScreen()函数说明 : 开启 /关闭屏幕保持。当开启屏幕保持时 , 后续的找图、找色等函数不会重新获取屏幕图像 , 而是使用开启屏幕保持之前的屏幕图像;当关闭屏幕保持时 , 后续的找图、找色等函数会每次都重新获取屏幕图像。适当使用此函数可以优化脚本运行效率参数参数 1 (布尔值 ) : 是否启用屏幕保持返回值无示例keepScreen(true);-开启屏幕保持ifgetColor(100,100)= 0x000000orgetColor(200,200)= 0x000000 then-进行 2次取色,由于启用了屏幕保持 ,这 2次取色不会重新获取2次屏幕图像 ,这样可以提高性能notifyMessage("yes");-如果 (100,100)和 (200,200)坐标有一个颜色为黑色, 输出 "yes"else-否则notifyMessage("no");-输出 "no"endkeepScreen(false);-关闭屏幕保持rotateScreen()函数说明 : 旋转屏幕的坐标体系 , 后续的找图、找色、截图、触摸动作都会使用新的坐标体系。参数 1(数字):

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论