private void danxian() { int a = (int)dqindex; string a_b = "d"; string dizhi = null; string path = null; string seed = null; MyFuncUtil.myqiehuancd(a_b, out dizhi, out path, out seed); //while (true) { WriteLog.WriteLogFile(a + "", "模拟器" + a + "进入到循环当中"); /*var r = MyFuncUtil.Launch(a, dizhi); * if (r == 0) * { * WriteLog.WriteLogFile(a + "", "模拟器" + a + "打开失败"); * Thread.Sleep(20000); * return; * } * Thread.Sleep(20000);*/ int dqinx = a; myDm dm = new myDm(); lock (dm) { MingRi_Sort mr = new MingRi_Sort(dm, dqinx, dizhi); string bmpname = a + "_" + dm.GetTime(); mr.ceshi(); } } }
/// <summary> /// 从指定坐标按下鼠标左键 开始拖鼠标 到指定坐标2结束 /// </summary> /// <param name="jubing"></param> /// <param name="x1"></param> /// <param name="y1"></param> /// <param name="x2"></param> /// <param name="y2"></param> public void touch(int x1, int y1, int x2, int y2) { //int res = mf.IsBind(jubing); //if (res != 1) { //res = bindWindow(jubing); } mf.mydelay(10, 20); mf.Mydm.MoveTo(x1, y1); mf.mydelay(200, 300); mf.Mydm.LeftDown(); mf.mydelay(100, 200); int beichu1 = x1 >= x2 ? 10 : -10; int beichu2 = y1 >= y2 ? 10 : -10; int jiangex = System.Math.Abs(x1 - x2) / beichu1; int jiangey = System.Math.Abs(y1 - y2) / beichu2; int absjiangex = System.Math.Abs(jiangex); int absjiangey = System.Math.Abs(jiangey); //MyFuncUtil.mylogandxianshi("jiangex,jiangey" + jiangex + " " + jiangey + " beichu1:" + beichu1 + " beichu2:" + beichu2); int jiaoxiao = absjiangex <= absjiangey ? absjiangex : absjiangey; //MyFuncUtil.mylogandxianshi("jiaoxiao" + jiaoxiao); int dqx = x1; int dqy = y1; MyFuncUtil.mylogandxianshi("x1,y1---" + x1 + " " + y1); for (int i = 0; i < jiaoxiao; i++) { mf.Mydm.MoveTo(x1 - (i + 1) * beichu1, y1 - (i + 1) * beichu2); dqx = x1 - (i + 1) * beichu1; dqy = y1 - (i + 1) * beichu2; mf.mydelay(100, 300); //MyFuncUtil.mylogandxianshi("x1,y1 " + (x1 - (i + 1) * beichu1) + " " + (y1 - (i + 1) * beichu2)); //MyFuncUtil.mylogandxianshi("dqx,dqy --"+dqx+" "+dqy); } int jiaoxiao2 = absjiangex > absjiangey ? absjiangex - absjiangey : absjiangey - absjiangex; if (absjiangex > absjiangey) { for (int i = 0; i < jiaoxiao2; i++) { mf.Mydm.MoveTo(dqx - (i + 1) * beichu1, dqy); mf.mydelay(100, 300); //MyFuncUtil.mylogandxianshi("dqx,dqy --" + (dqx - (i + 1) * beichu1) + " " + dqy); } } else if (absjiangex < absjiangey) { for (int i = 0; i < jiaoxiao2; i++) { mf.Mydm.MoveTo(dqx, dqy - (i + 1) * beichu2); mf.mydelay(100, 300); //MyFuncUtil.mylogandxianshi("dqx,dqy" + dqx + " " + (dqy - (i + 1) * beichu2)); } } mf.Mydm.MoveTo(x2, y2); mf.mydelay(500, 2000); mf.Mydm.LeftUp(); mf.mydelay(100, 300); }
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"); } } } } }
private void dpanduoxiancheng_Click(object sender, EventArgs e) { 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 + ",开始"); Thread.Sleep(2000); ThreadPool.SetMaxThreads(yunxingIndex.Length, yunxingIndex.Length); //设置最大线程数 foreach (int inx in yunxingIndex) { ThreadPool.QueueUserWorkItem(new WaitCallback(duoxiand), inx);//线程池指定线程执行Auto方法 Thread.Sleep(20000); } var ks = MyFuncUtil.GetTimestamp(); var xs = false; 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; } var js = MyFuncUtil.GetTimestamp(); if ((js - ks) > 1000 * 60 * 10) { xs = true; } if (xs) { MyFuncUtil.mylogandxianshi("当前工作线程数" + workerThreads); xs = false; ks = MyFuncUtil.GetTimestamp(); } } WriteLog.WriteLogFile("", "序号" + j + ",结束"); } /*foreach (int a in yunxingIndex) * { * ParameterizedThreadStart threadStart = new ParameterizedThreadStart(duoxiand);//通过ThreadStart委托告诉子线程执行什么方法 * Thread thread = new Thread(threadStart); * thread.Start(a); * Thread.Sleep(60000); * if (a > 9) * { * Thread.Sleep(120000); * } * }*/ }
private void button1_Click(object sender, EventArgs e) { MyFuncUtil.mylogandxianshi("开始测试"); string dizhi = null; string path = null; string seed = null; MyFuncUtil.myqiehuancd("d", out dizhi, out path, out seed); MyFuncUtil.panduanqidong(7, "d"); }
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 + ",结束"); } }
private void foo() { var ks = MyFuncUtil.GetTimestamp(); var ks_gxyunxing = MyFuncUtil.GetTimestamp(); var ks_cqyunxing = MyFuncUtil.GetTimestamp(); var i = 1; string zidong = ""; while (true) { Thread.Sleep(1000); var js = MyFuncUtil.GetTimestamp(); i++; //MyFuncUtil.SecondToHour(+i + (js - ks) / 1000+" " CalcFinished("程序已运行:" + MyFuncUtil.SecondToHour(js - ks) + zidong); this.label1.ForeColor = Color.Red; } }
private bool panduanzhandou(SanDian sd) { bool rs = false; long ks = -1; if (mf.mohuByLei(sd) == 1) { ks = MyFuncUtil.GetTimestamp(); } long js = MyFuncUtil.GetTimestamp(); if ((js - ks) > 1000 * 60 * 10) { MyFuncUtil.mylogandxianshi("10分钟未战斗"); //截图 rs = true; } return(rs); }
/// <summary> /// 鼠标左键点击 x y坐标 /// </summary> /// <param name="x"></param> /// <param name="y"></param> public void click(int x, int y, int pianyix = 0, int pianyiy = 0) { int x1 = MyFuncUtil.suijishu(-2, 2); int y1 = MyFuncUtil.suijishu(-2, 2); mf.mydelay(50, 80); if ((x1 + x + pianyix < 0) || (y1 + y + pianyiy < 0) || (x1 + x + pianyix > xianzhi_x) || (y1 + y + pianyiy > xianzhi_y)) { WriteLog.WriteLogFile("", "出边界了.." + x + " " + y); return; } mf.Mydm.MoveTo(x + x1 + pianyix, y + y1 + pianyiy); mf.mydelay(60, 120); mf.Mydm.LeftDown(); mf.mydelay(10, 50); mf.Mydm.LeftUp(); mf.mydelay(10, 120); }
private void foo() { var ks = MyFuncUtil.GetTimestamp(); var i = 1; while (true) { Thread.Sleep(1000); var js = MyFuncUtil.GetTimestamp(); i++; //MyFuncUtil.SecondToHour(+i + (js - ks) / 1000+" " CalcFinished("程序已运行:" + MyFuncUtil.SecondToHour(js - ks)); this.label2.ForeColor = Color.Red; if (1 != 1) { //break; } } }
private bool panduankaping(int x, int y, int chushi = 1) { bool rs = false; string yanse1 = null; long ks = -1; if (chushi == 1) { yanse1 = mf.myGetColorWuJbYanse(x, y); ks = MyFuncUtil.GetTimestamp(); } string yanse2 = mf.myGetColorWuJbYanse(x, y); long js = MyFuncUtil.GetTimestamp(); if ((js - ks) > 1000 * 60 * 5 && yanse2.Equals(yanse1)) { MyFuncUtil.mylogandxianshi("卡屏5分钟,取点x:" + x + ",y:" + y); //截屏 rs = true; } return(rs); }
public Boolean zhuce(int fz) { WriteLog.WriteLogFile(this._mnqName, "进入到注册环节-登录或注册" + " " + this._jubing); Boolean zccg = false; int tx = -1, ty = -1; DuoDianZhaoSe dz2 = new DuoDianZhaoSe(0x353636, "4|0|0xe79941,-3|0|0xd68334,10|19|0xf8b757,8|30|0xf9be66,28|49|0x9a9a9a,33|49|0x9a9a9a", 90, 40, 30, 95, 100); mf.myqudianqusezuobiaoByLei(this._jubing, dz2, out tx, out ty); if (tx != -1 && ty != -1) { long ks = MyFuncUtil.GetTimestamp(); while (true) { mf.myqudianqusezuobiaoByLei(this._jubing, dz2, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "发现跳过实名"); mf.mytap(this._jubing, 80, 92);//点跳过实名 } mf.myqudianqusezuobiao(this._jubing, 0xfffbef, "-2|-1|0xe7beba,-3|3|0xca7170,2|2|0xfdf1e7,4|0|0xca3836,-148|-2|0xcecfce,-166|-2|0xb42720", 90, 20, 0, 205, 20, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "发现公告,关闭"); mf.mytap(this._jubing, tx, ty); } mf.myqudianqusezuobiao(this._jubing, 0xfeda2f, "-6|0|0xe8cc33,-9|0|0x3f2a01,-12|4|0xffd721,5|2|0x4a1800,11|3|0x743409,14|3|0xffd321", 90, 85, 90, 130, 110, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "发现进入游戏"); mf.mytap(this._jubing, tx, ty); mf.mydelay(4000, 8000); mf.myqudianqusezuobiao(this._jubing, 0xfeda2f, "-6|0|0xe8cc33,-9|0|0x3f2a01,-12|4|0xffd721,5|2|0x4a1800,11|3|0x743409,14|3|0xffd321", 90, 85, 90, 130, 110, out tx, out ty); if (tx == -1 && ty == -1) { zccg = true; break;; } } long jstime = MyFuncUtil.GetTimestamp(); if ((jstime - ks) > fz * 60 * 1000) { zccg = false; WriteLog.WriteLogFile(this._mnqName, "注册环节-登录或注册-没有成功完成" + " " + this._jubing); break;; } } return(zccg); } ZhangHao zhanghao = new ZhangHao(); string name = null, pas = null; long kstime = MyFuncUtil.GetTimestamp(); int td = 0; while (true) { zhanghao.getNameAndPw(this._dqinx, out name, out pas); if (name == null && pas == null) { if (td == 0) { zhanghao.generateNameAndPas(this._dqinx, 7, out name, out pas); mf.mytap(this._jubing, 108, 64);//点账号注册 mf.mydelay(2000, 4000); td = 1; } DuoDianZhaoSe dz = new DuoDianZhaoSe(0x5ecdf3, "-2|12|0x434343,-26|23|0x959595,-26|36|0x959595,-26|45|0xa8a8a8,-26|61|0x1eb9ee,-26|74|0xeb9300", 90, 75, 15, 115, 110); mf.myqudianqusezuobiaoByLei(this._jubing, dz, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "进入到账号注册界面"); } else { WriteLog.WriteLogFile(this._mnqName, "meiyou进入到账号注册界面" + this._jubing); return(zccg); } mf.mytap(this._jubing, 95, 45); mf.mydelay(2000, 4000); zhanghao.shuruchar(mf, this._dqinx, this._jubing, name); mf.mytap(this._jubing, 91, 57); mf.mydelay(2000, 4000); zhanghao.shuruchar(mf, this._dqinx, this._jubing, pas); mf.mydelay(2000, 4000); if (mf.myGetColor(this._jubing, 136, 71, "1eb9ee")) { WriteLog.WriteLogFile(this._mnqName, "去掉绑定手机对号"); mf.mytap(this._jubing, 136, 71); mf.mydelay(1000, 3000); } mf.mytap(this._jubing, 105, 98); mf.mydelay(4000, 6000); mf.myqudianqusezuobiaoByLei(this._jubing, dz, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "上述操作完,还在账号注册界面"); continue; } while (true) { mf.myqudianqusezuobiaoByLei(this._jubing, dz2, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "发现跳过实名"); mf.mytap(this._jubing, 80, 92);//点跳过实名 } mf.myqudianqusezuobiao(this._jubing, 0xfffbef, "-2|-1|0xe7beba,-3|3|0xca7170,2|2|0xfdf1e7,4|0|0xca3836,-148|-2|0xcecfce,-166|-2|0xb42720", 90, 20, 0, 205, 20, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "发现公告,关闭"); mf.mytap(this._jubing, tx, ty); } mf.myqudianqusezuobiao(this._jubing, 0xfeda2f, "-6|0|0xe8cc33,-9|0|0x3f2a01,-12|4|0xffd721,5|2|0x4a1800,11|3|0x743409,14|3|0xffd321", 90, 85, 90, 130, 110, out tx, out ty); if (tx != -1 && ty != -1) { WriteLog.WriteLogFile(this._mnqName, "发现进入游戏"); mf.mytap(this._jubing, tx, ty); mf.mydelay(4000, 8000); mf.myqudianqusezuobiao(this._jubing, 0xfeda2f, "-6|0|0xe8cc33,-9|0|0x3f2a01,-12|4|0xffd721,5|2|0x4a1800,11|3|0x743409,14|3|0xffd321", 90, 85, 90, 130, 110, out tx, out ty); if (tx == -1 && ty == -1) { zccg = true; break;; } } long js = MyFuncUtil.GetTimestamp(); if ((js - kstime) > fz * 60 * 1000) { WriteLog.WriteLogFile(this._mnqName, "没有能够发现进入游戏"); break;; } } } if (zccg == true) { WriteLog.WriteLogFile(this._mnqName, "注册环节-登录或注册-成功完成" + " " + this._jubing); break;; } long jstime = MyFuncUtil.GetTimestamp(); if ((jstime - kstime) > fz * 60 * 1000) { WriteLog.WriteLogFile(this._mnqName, "注册环节-登录或注册-没有成功完成" + " " + this._jubing); break;; } } return(zccg); }
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 ceshi_button_Click(object sender, EventArgs e) { apkName = dict["明日方舟"]; int[] yunxingIndex = new int[] { 1, 2, 11 }; //MyFuncUtil.createDirIfNotExist("C"); /*foreach (int a in yunxingIndex) * { * ParameterizedThreadStart threadStart = new ParameterizedThreadStart(duoxianc);//通过ThreadStart委托告诉子线程执行什么方法 * Thread thread = new Thread(threadStart); * thread.Start(a); * Thread.Sleep(60000); * }*/ string dizhi = null; string path = null; string seed = null; string a_b = "d"; MyFuncUtil.myqiehuancd(a_b, out dizhi, out path, out seed); MyFuncUtil.mylogandxianshi("准备多线程测试"); for (int j = 0; j < 5; j++) { MyFuncUtil.mylogandxianshi("序号" + j + ",开始"); //MyLdcmd.ClearAndCopySimulator("d"); //打开多开器 //MyLdcmd.RunDuokaiqi("d"); /*List<int> newinx = new List<int>(); * foreach (int myinx in yunxingIndex) * { * int i=MyFuncUtil.QiDongWanChengInx("d", myinx, apkName); * if (i != -1) { * newinx.Add(i); * } * Thread.Sleep(3000); * }*/ ThreadPool.SetMaxThreads(yunxingIndex.Length, yunxingIndex.Length); //设置最大线程数 foreach (int inx in yunxingIndex) { ThreadPool.QueueUserWorkItem(new WaitCallback(duoxian_cs), inx);//线程池指定线程执行Auto方法 Thread.Sleep(1000); } long ks = MyFuncUtil.GetTimestamp(); var xs = false; while (true) { Thread.Sleep(1000);//这句写着,主要是没必要循环那么多次。去掉也可以。 int maxWorkerThreads, workerThreads; int portThreads; ThreadPool.GetMaxThreads(out maxWorkerThreads, out portThreads); ThreadPool.GetAvailableThreads(out workerThreads, out portThreads); if (maxWorkerThreads - workerThreads == 0) { Console.WriteLine("结束了"); break; } long js = MyFuncUtil.GetTimestamp(); if ((js - ks) > 1000 * 60 * 10) { xs = true; } if (xs) { MyFuncUtil.mylogandxianshi("当前工作线程数" + workerThreads); xs = false; ks = MyFuncUtil.GetTimestamp(); } } MyFuncUtil.mylogandxianshi("序号" + j + ",结束"); } }