Esempio n. 1
0
        private void Init()
        {
            AppHelper.WaitMillSeconds(Convert.ToInt32(0.05 * (_playerIndex + 1) * 1000));
            _dm = new dmsoft();
            _dm.MoveWindow(_process.GetMainWindowHwnd(), _playerIndex * 20, 0);

            var b = IsStared();

            if (!b)
            {
                for (var i = 0; i < 100; i++)
                {
                    Task.WaitAll(Task.Delay(TimeSpan.FromSeconds(1)));
                    b = IsStared();
                    if (!b)
                    {
                        continue;
                    }
                    var commond = $"{Path.Combine(Path.GetDirectoryName(AppSettings.Player.Path), "ldconsole.exe")} adb --index {_playerIndex} --command \"shell am start -n  com.longtugame.qjmu.longtu/com.guorangame.hiheros.MainActivity\"";
                    AppHelper.ExecuteWindowsCommond(commond);
                    _dm.BindWindowByCustom(_process);
                    break;
                }
            }

            if (!b)
            {
                throw new Exception($"错误:模拟器启动太漫长,已超过100秒");
            }

            StartOpera();
        }
Esempio n. 2
0
        private Process[] StartPlayers()
        {
            var list = new List <Process>();

            _dmMain = new dmsoft();
            //var x = dmMain.Reg("111", "3.1254");
            var mailProcess = StartDnmultiplayerProcess();
            //var hProcess = (IntPtr)OpenProcess(PROCESS_ALL_ACCESS, false, playerProcess.Id);
            var x111 = mailProcess.MainWindowHandle.ToInt32();
            var bind = _dmMain.BindWindowByCustom(mailProcess);

            if (bind == 0)
            {
                throw new Exception("错误:大漠绑定雷电多开器窗口失败");
            }

            const int topX  = 0;
            var       topY  = 0;
            const int maxX  = 100000;
            const int maxY  = 100000;
            int       index = 0;

            while (true)
            {
                var p = _dmMain.FindPic(topX, topY, maxX, maxY, AppHelper.MapPath("/resources/pics/playerstart.bmp"), "000000", 1.0, 0, out var intX, out var intY);
                var x = (int)intX;
                var y = (int)intY;
                if (x > 0 && y > 0)
                {
                    _dmMain.MoveTo(x + 10, y + 10);
                    _dmMain.LeftClick();
                    //await Task.Delay(TimeSpan.FromSeconds(AppSettings.PlayerStartDelay));
                    var process = GetDnplayer(index);
                    if (process == null)
                    {
                        throw new Exception("错误:未成功启动雷电模拟器");
                    }
                    list.Add(process);

                    topY = y + 2;
                    Task.WaitAll(Task.Delay(TimeSpan.FromSeconds(AppSettings.Player.StartInterval)));
                }
                else
                {
                    break;
                }
            }

            return(list.ToArray());
        }
Esempio n. 3
0
 public static int BindWindowByCustom(this dmsoft dm, Process process)
 {
     return(dm.BindWindowByCustom(process.GetMainWindowHwnd()));
 }