public int StartupEm(string aEmName) { em sEm = new em(); string[] arg = new string[1]; arg[0] = aEmName; sEm.pid = StartProcess(@textBox1.Text + exec.EM, arg); Thread.Sleep(5000); int hwnd = sDm.FindWindowByProcessId(sEm.pid, "", ""); //string title = sDm.GetWindowTitle(hwnd); sEm.name = aEmName; sEm.hwnd = hwnd; //sEm.title = title; LoadEMConfig(ref sEm); emList.Add(sEm); return(sEm.pid); }
/// <summary> /// 开启挂机 /// </summary> private void BeginAutoPlay() { m_startTime = DateTime.Now; m_dm = DMFactory.Instance.CreateDMSoft(); var dictPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "resource", "WLYWord.txt"); var setResult = m_dm.SetDict(0, dictPath); WxLog.Debug($"MainEntity.BeginAutoPlay SetDict {dictPath} Result:<{setResult}>"); var retry = 0; while (true) { m_wndHandle = m_dm.FindWindowByProcessId(m_process.Id, "ActiveX", ""); var state = m_dm.GetWindowState(m_wndHandle, 2); if (state == 0) { Thread.Sleep(1000); continue; } DMFactory.Instance.BindWindow(m_dm, m_wndHandle); var result = DMFactory.Instance.FindPic(m_dm, ResourceEnum.InGameCheck, out var _, out var _); if (result) { break; } // 超过30秒重新启动 retry++; if (retry > 30) { WxLog.Debug($"MainEntity.BeginAutoPlay Cannot Find InGameTag {retry}"); return; } Thread.Sleep(1000); } WxLog.Debug($"MainEntity.BeginAutoPlay Find InGameTag Success {m_wndHandle}"); m_dm.MoveTo(815, 178); m_dm.LeftClick(); Thread.Sleep(1000); m_dm.LeftClick(); Thread.Sleep(1000); // 内层死循环,周期性重启 while (m_run) { //回到主城界面 GoBack(); // 收起聊天框 CloseChat(); // 检测擂台站报名 //SignUpFight(); FindFirstAttack(); //Thread.Sleep(30000); if (DateTime.Now - m_startTime > TimeSpan.FromMinutes(10) || (DateTime.Now.Minute == 0 && m_startTime.Minute != 0)) { // 10分钟启动一次 WxLog.Debug($"MainEntity.BeginAutoPlay Restart {DateTime.Now}"); return; } } }
public int FindWindowByProcessId(int process_id, string class_name = "", string title_name = "") { return(dm.FindWindowByProcessId(process_id, class_name, title_name)); }