public static bool lureninstallOk(int dqinx, string apppackage, Action myinstall) { WriteLog.WriteLogFile(dqinx + "", "检测安装是否成功" + apppackage); bool t = false; //隔30秒检测是否安装成功 long ksjs = MyFuncUtil.GetTimestamp(); long ks = MyFuncUtil.GetTimestamp(); long ks2 = MyFuncUtil.GetTimestamp(); bool luren = false; int yici = 0; int zhuang = 0; while (true) { if (yici == 0) { yici = 1; WriteLog.WriteLogFile(dqinx + "", "开头要检测安装一次" + apppackage); luren = MyLdcmd.jingjieisok(dqinx, apppackage); if (!luren) { WriteLog.WriteLogFile(dqinx + "", "开头不成功,安装一次" + apppackage); myinstall(); } } long js = MyFuncUtil.GetTimestamp(); if ((js - ks) > 30 * 1000) { luren = MyLdcmd.jingjieisok(dqinx, apppackage); ks = MyFuncUtil.GetTimestamp(); WriteLog.WriteLogFile(dqinx + "", "30s检测安装一次" + apppackage + "检测结果:" + luren); } if ((js - ksjs) > 4 * 60 * 1000) { WriteLog.WriteLogFile(dqinx + "", "4分钟了,安装app没成功" + apppackage); break; } if (luren) { WriteLog.WriteLogFile(dqinx + "", "安装app成功" + apppackage); t = true; break; } if (zhuang < 1 && !luren && (js - ks2) > 60 * 1000) { WriteLog.WriteLogFile(dqinx + "", "准备安装app,restore或者install"); myinstall(); ks2 = MyFuncUtil.GetTimestamp(); zhuang++; } } return(t); }
public void getIP(int dqinx, string dizhi, string seed, int jubing, int waicengjubing, out string ip) { WriteLog.WriteLogFile(dqinx + "", "获取IP,jubing:" + jubing + ",waicengjubing:" + waicengjubing); ip = ""; bool t = false; string packagename = "package:com.ddm.iptools"; //lock (obj) { t = MyFuncUtil.lureninstallOk(dqinx, packagename, () => { WriteLog.WriteLogFile(dqinx + "", "安装app没成功--iptools"); /*temp = myQuit(dqinx, dizhi); * if (!temp) * { * WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "关闭失败"); * Thread.Sleep(20000); * return; * }*/ WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "安装iptools"); //MyLdcmd.myRestore(dqinx, seed, dizhi); MyLdcmd.installApp(dqinx, @"C:\迅雷下载\2_1b823b1928a42f09423f28cb79179bfe.apk"); /*temp = myQuit(dqinx, dizhi); * if (!temp) * { * WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "关闭失败"); * Thread.Sleep(20000); * return; * } * temp = MyFuncUtil.Launch(dqinx, dizhi); * if (!temp) * { * WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "打开失败"); * Thread.Sleep(20000); * return; * }*/ Thread.Sleep(3000); }); if (t == false) { Thread.Sleep(1000 * 60 * 2); bool luren = MyLdcmd.jingjieisok(dqinx, packagename); if (!luren) { return; } } //窗口已打开 获取句柄 if (jubing <= 0) { WriteLog.WriteLogFile(dqinx + "", "准备获取句柄,在getIP处"); jubing = MyLdcmd.getDqmoniqiJuBingByIndex(dqinx, dizhi); WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "句柄为" + jubing); } myDm dm = new myDm(); int r1 = 0; if (jubing > 0) { r1 = dm.bindWindow(jubing); } if (r1 != 1) { WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "绑定失败"); Thread.Sleep(20000); return; } //dm.SetClipboard("请"); //apkName = dict["IPtool"]; string apkName = "com.ddm.iptools/com.ddm.iptools.ui.MainActivity"; //int i = MyFuncUtil.QiDongWanChengLurenzhanghao("d", dqinx, apkName); fuzhu.YouXiFactory yxf = new fuzhu.YouXiFactory(); int i = QiDongWanChengGetZhiDingDian(dqinx, apkName, dm, jubing, yxf.CreateYouXiSanDian("tongyongsandian"), "IPtool"); if (i == -1) { WriteLog.WriteLogFile(dqinx + "", "模拟器" + dqinx + "打开app" + apkName + "失败"); Thread.Sleep(20000); return; } string yiqu = ""; bool t2 = PanDuan_QidongByYiQuDian_IP(dqinx, 1000 * 60, dm, jubing, out yiqu); if (t2) { WriteLog.WriteLogFile(dqinx + "", "模拟器发现已取点" + yiqu); } ip = yiqu; /*if (ip != "" && ip.IndexOf("请") < 0) * { * return; * } */ } }