Exemple #1
0
        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();
                }
            }
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        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");
                        }
                    }
                }
            }
        }
Exemple #4
0
        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);
             *  }
             * }*/
        }
Exemple #5
0
        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");
        }
Exemple #6
0
        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 + "打开结束");
        }
Exemple #7
0
        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 + ",结束");
            }
        }
Exemple #8
0
        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;
            }
        }
Exemple #9
0
        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);
        }
Exemple #10
0
        /// <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);
        }
Exemple #11
0
        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;
                }
            }
        }
Exemple #12
0
        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);
        }
Exemple #13
0
        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);
        }
Exemple #14
0
        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));
                }
            }
        }
Exemple #15
0
        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 + ",结束");
            }
        }