Exemplo n.º 1
0
        /// <summary>
        /// 开始运行脚本
        /// </summary>
        private void StartGame()
        {
            if (m_process != null)
            {
                m_process.Close();
                m_process.Kill();
                m_process = null;
            }

            m_process = Process.Start(new ProcessStartInfo
            {
                UseShellExecute = false,
                FileName        = m_programPath
            });

            var result = Login();

            if (!result)
            {
                // 启动失败,等待重启
                State = RunningState.Stopped;
                return;
            }

            // 设置开始时间
            StartTime = DateTime.Now;

            // 获取新窗口句柄
            m_dmsoft = DMFactory.Instance.CreateDMSoft();
            while (true)
            {
                var handle = m_dmsoft.EnumWindowByProcessId(m_process.Id, "", "MacromediaFlashPlayerActiveX", 2);
                WxLog.Debug($"AppEntity.StartGame Handl <{handle}>");
                var hs = handle.Split(',');
                foreach (var h in hs)
                {
                    try
                    {
                        var it = int.Parse(h);
                        m_dmsoft.BindWindow(it, "gdi", "windows", "windows", 101);
                        var title = m_dmsoft.GetWindowClass(it);
                        WxLog.Debug($"AppEntity.StartGame {title}");
                    }
                    catch
                    {
                    }
                }

                Thread.Sleep(10000);
            }
        }