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(); }
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()); }
public static int BindWindowByCustom(this dmsoft dm, Process process) { return(dm.BindWindowByCustom(process.GetMainWindowHwnd())); }