示例#1
0
        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);
        }
示例#2
0
        /// <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;
                }
            }
        }
示例#3
0
 public int FindWindowByProcessId(int process_id, string class_name = "", string title_name = "")
 {
     return(dm.FindWindowByProcessId(process_id, class_name, title_name));
 }