private void duoxian(string a_b, int dqinx) { string dizhi = null; string path = null; string seed = null; MyFuncUtil.myqiehuancd(a_b, out dizhi, out path, out seed); //MyLdcmd.mySort(dizhi); Thread.Sleep(2000); WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "进入到循环当中"); /*var r = MyFuncUtil.Launch(a, dizhi); * if (r == 0) * { * WriteLog.WriteLogFile(a + "", "模拟器" + a + "打开失败"); * Thread.Sleep(20000); * return; * } * Thread.Sleep(20000);*/ myDm dm = new myDm(); lock (dm) { MingRi_Sort mr = new MingRi_Sort(dm, dqinx, dizhi); //登录 要下载文件 暂定十分钟 发现start按钮则立刻跳出 tmpBool = mr.denglu(10); if (!tmpBool) { tmpBoolString.Append("登录环节出错"); return; } tmpBool = mr.zhuce(3); if (!tmpBool) { tmpBoolString.Append("注册环节出错"); return; } string bmpname = dqinx + "_" + dm.GetTime(); mr.zhuxian(); Thread.Sleep(10000); int rg = mr.ganyuan_jietu(); if (rg != -1) { Thread.Sleep(10000); MyLdcmd.myScreencap(dqinx, path + bmpname + ".png", dizhi); Thread.Sleep(20000); if (dm.IsFileExist(path + bmpname + ".png") == 1) { string abc = mr.generalBasicDemo(dqinx, path + bmpname + ".png"); WriteLog.WriteLogFile(dqinx + "", abc + " " + abc.Length); MyFuncUtil.MyRestore(dqinx, abc, a_b); if (abc.Length <= 0) { dm.DeleteFile(path + bmpname + ".png"); } } } } }
public MingRi(xDm mydm, int dqinx, string dizhi) { this.mf = (myDm)mydm; this.dqinx = dqinx; this.jubing = MyLdcmd.getDqmoniqiJuBingByIndex(dqinx, dizhi); //模拟器的名字 取值有问题 改为index this.mnqName = dqinx + ""; WriteLog.WriteLogFile(this.mnqName, "明日构造函数,句柄是:" + jubing + ",模拟器index是:" + mnqName + ",thread:" + Thread.CurrentThread.ManagedThreadId); }
/// <summary> /// 跳过动画专用点击位置x /// </summary> //private int tiaoguoyongX = 100; /// <summary> /// 跳过动画专用点击位置y /// </summary> //private int tiaoguoyongY = 90; public YiQuan_Da(xDm mydm, int dqinx, string dizhi) { this.mf = (myDm)mydm; this._dqinx = dqinx; this._jubing = MyLdcmd.getDqmoniqiJuBingByIndex(dqinx, dizhi); //模拟器的名字 取值有问题 改为index this._mnqName = dqinx + ""; int r = mf.bindWindow(this._jubing); WriteLog.WriteLogFile(this._mnqName, "一拳构造函数,句柄是:" + _jubing + ",模拟器index是:" + _mnqName + ",thread:" + Thread.CurrentThread.ManagedThreadId + ",绑定:" + r); }
private void duoxian_cs(object dqind) { int a = (int)dqind; string a_b = "d"; string dizhi = null; string path = null; string seed = null; MyFuncUtil.myqiehuancd(a_b, out dizhi, out path, out seed); MyFuncUtil.mylogandxianshi("准备打开模拟器" + a); MyLdcmd.myRestore(a, seed, dizhi); Thread.Sleep(5000); MyFuncUtil.mylogandxianshi("模拟器" + a + "打开结束"); }
private void oldquanqd() { apkName = dict["明日方舟"]; int[] yunxingIndex = new int[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; string a_b = "d"; qdinit(a_b); for (int j = 1; j < 1000; j++) { WriteLog.WriteLogFile("", "序号" + j + ",开始"); MyFuncUtil.LaunchAll(yunxingIndex.Length); Thread.Sleep(10000); List <int> newinx = new List <int>(); foreach (int myinx in yunxingIndex) { int i = MyFuncUtil.QiDongWanChengInx(a_b, myinx, apkName); if (i != -1) { newinx.Add(i); } Thread.Sleep(3000); } MyLdcmd.mySort(a_b); Thread.Sleep(2000); ThreadPool.SetMaxThreads(newinx.Count, newinx.Count); //设置最大线程数 foreach (int inx in newinx) { ThreadPool.QueueUserWorkItem(new WaitCallback(duoxiand), inx);//线程池指定线程执行Auto方法 Thread.Sleep(20000); } while (true) { Thread.Sleep(10000);//这句写着,主要是没必要循环那么多次。去掉也可以。 int maxWorkerThreads, workerThreads; int portThreads; ThreadPool.GetMaxThreads(out maxWorkerThreads, out portThreads); ThreadPool.GetAvailableThreads(out workerThreads, out portThreads); if (maxWorkerThreads - workerThreads == 0) { break; } } WriteLog.WriteLogFile("", "序号" + j + ",结束"); } }
public void guanbi(int index, string name) { MyLdcmd.getLdCmd().StopApp(index, name); }
/// <summary> /// 启动游戏 /// </summary> /// <param name="index"></param> /// <param name="name"></param> public void qidong(int index, string name) { WriteLog.WriteLogFile("", index + "----" + name + ",thread:" + Thread.CurrentThread.ManagedThreadId); MyLdcmd.getLdCmd().StartApp(index, name); }
private void duoxianxunhuan(string a_b, int dqinx, int xhcishu) { string dizhi = null; string path = null; string seed = null; MyFuncUtil.myqiehuancd(a_b, out dizhi, out path, out seed); //MyLdcmd.mySort(dizhi); var cishu = 0; var cgcishu = 0; for (int cs = 0; cs < xhcishu; cs++) { var ks = MyFuncUtil.GetTimestamp(); Thread.Sleep(2000); MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "进入到循环当中"); Thread.Sleep(1000); bool temp = false; if (!temp) { MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "关闭失败"); Thread.Sleep(20000); continue; } MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "复原"); MyLdcmd.myRestore(dqinx, seed, dizhi); MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "改名"); MyLdcmd.myRename(dqinx, "雷" + dqinx + "-" + cgcishu, dizhi); temp = MyFuncUtil.Launch(dqinx, dizhi); if (!temp) { MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "打开失败"); Thread.Sleep(20000); continue; } int i = MyFuncUtil.QiDongWanChengInx(a_b, dqinx, apkName); if (i == -1) { MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "打开app" + apkName + "失败"); Thread.Sleep(20000); continue; } MyLdcmd.mySort(a_b); //Thread.Sleep(2000 * 60 * 200); //lock (obj) { myDm dm = new myDm(); MingRi_Sort mr = new MingRi_Sort(dm, dqinx, dizhi); //登录 要下载文件 暂定十分钟 发现start按钮则立刻跳出 tmpBool = mr.denglu(10); if (!tmpBool) { tmpBoolString.Append("登录环节出错"); return; } tmpBool = mr.zhuce(3); if (!tmpBool) { tmpBoolString.Append("注册环节出错"); return; } string bmpname = dqinx + "_" + dm.GetTime(); mr.zhuxian(); Thread.Sleep(10000); int rg = mr.ganyuan_jietu(); if (rg != -1) { Thread.Sleep(10000); MyLdcmd.myScreencap(dqinx, path + bmpname + ".png", dizhi); Thread.Sleep(20000); if (dm.IsFileExist(path + bmpname + ".png") == 1) { string abc = mr.generalBasicDemo(dqinx, path + bmpname + ".png"); WriteLog.WriteLogFile(dqinx + "", abc + " " + abc.Length); MyFuncUtil.MyRestore(dqinx, abc, a_b); if (abc.Length > 0) { cgcishu++; } else { dm.DeleteFile(path + bmpname + ".png"); } } } cishu++; var js = MyFuncUtil.GetTimestamp(); MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "循环" + cishu + "次数"); MyFuncUtil.mylogandxianshi("模拟器" + dqinx + "循环1次耗时" + MyFuncUtil.SecondToHour(js - ks)); } } }
private void qdinit(string a_b) { //MyFuncUtil.createDirIfNotExist(a_b); //MyLdcmd.ClearAndCopySimulator(a_b); MyLdcmd.RunDuokaiqi(a_b); }