|
我们的软件名叫“侠客手机群控引擎”,既然它是一个引擎,就不应该只局限于一成不变的功能,所以应客户需求放出了插件功能。8 r. J# ?9 f1 F
3 T1 F. _7 v5 X
用户可以基于自己需要来实现自己需要的任意功能,插件采用标准C# DLL方式开发,非常容易入门,目前提供了屏幕、按键、元素以及部分Intent实现的特定功能。! Y. D3 H: u* a8 S0 b7 p+ B! I
1 [: p% s. Q8 j7 N6 P下面来给大家简单介绍一下插件开发、以及使用方法。2 s- y# T! p* P% U) t7 P4 E: K/ K
6 C# } {8 K% o Z% N1 f写插件需要的环境:VS2015 .net4.6 以这个演示项目为例讲解一下插件的编写以及使用方法
. U. u) b5 |6 d) _ 首先,插件的类型其实是一个标准的.net dll类库,只不过它继承了侠客手机群控引擎的SDK来实现而已- M! A6 L1 m. w' ^' \
只要继承AndroidControlSDK.AndroidScript并实现Name Description RunScript这3个方法,即可实现一个完整的插件* E' m y! t9 L3 i; {/ y
完整DEMO- using System;
- using System.Collections.Generic;
- using System.Runtime.Serialization;
- using System.Threading;
- using System.Windows.Media;
- namespace mysss
- {
- public class Class1 : AndroidControlSDK.AndroidScript //继承AndroidControlSDK.AndroidScript来实现插件功能
- {
- public override string Name()
- {
- //返回插件的名称
- return "自动给附近的人打招呼";
- }
- public override string Description()
- {
- //返回插件的描述
- return "这是一个演示脚本";
- }
- //这个方法是插件的执行主体,所有功能都在这里执行
- public override void RunScript()
- {
- //显示调试日志,正式用时可以不开启这个
- ShowLogConsole();
- //在手机屏幕上显示运行状态
- ShowStatus("正在打开附近的人..", Color.FromRgb(78, 17, 255));
- //打开附近的人界面,这个具体参数请查看开发博客
- var dic = new Dictionary<string, string> { { "act", "opennearui" } };
- SendIntent(dic);
- //冷却1000毫秒
- Thread.Sleep(5000);
- //定义个int变量用于计数
- var count = 0;
- //定义一个变量为打招呼的内容
- var zhaohu = "hi,你好啊";
- //在手机屏幕上显示运行状态
- ShowStatus("正在获取附近的人“列表”..");
- //获取所有的昵称 com.tencent.mm:id/agg 这个是附近的人列表里的昵称资源id,这个可以通过android sdk里的 uiautomatorviewer.bat 这个工具来获取
- var nicks = GetUiTexts("com.tencent.mm:id/agg");
- Console.WriteLine("获取到的昵称数量:" + nicks.Count);
- //循环给所有昵称打招呼
- for (var index = 0; index < nicks.Count; index++)
- {
- var nickname = nicks[index];
- ShowStatus("正在加“" + nickname + "”[累计:" + count + "]..");
- //查看是否包含这个昵称
- if (FindObj(nickname).Contains("成功找到元素"))
- {
- //包含就点击它
- if (FindAndCLickObj(nickname).Contains("true"))
- {
- //冷却1000毫秒
- Thread.Sleep(1000);
- //查找并点击“打招呼”
- var result = FindAndCLickObjByRegex("打招呼");
- //输出结果到日志
- Console.WriteLine(result);
- //如果点击成功
- if (result.Contains("true"))
- {
- Thread.Sleep(1000);
- //查找输入框输入内容
- FindAndInutText("android.widget.EditText", zhaohu, 0);
- Thread.Sleep(2000);
- //添加好友
- FindAndCLickObjByRegex("(加为朋友|发送)");
- Thread.Sleep(1000);
- //返回
- FindAndCLickObj("返回");
- Thread.Sleep(1000);
- }
- else
- {
- //如果没有打招呼按钮则直接返回(一般是已经添加过了)
- FindAndCLickObj("返回");
- }
- }
- }
- //计数器加1
- count++;
- }
- }
- }
- }9 c# ]2 R' @$ V. ~, l. ?
5 `, {, U! }7 _1 W以上代码就是一个完整的插件方法,同一个dll里可以做多个这样的插件,最后生成插件
- E; Y' P# y5 O/ J
& o" O! o& d b 然后就可以运行它了,勾上群控后,也可以象其他脚本一样,对所有手机生效。
. G8 w/ L0 }% F- G: t+ n |
|