/// <summary> /// Подготовка запуска лаунчера Arc /// </summary> /// <returns></returns> private async Task StartTask() { if (FWPath.Contains("_ru")) { IsRusLaunch = true; } foreach (var p in Process.GetProcessesByName("pem")) { PemIds.Add(p.Id); foreach (var pr in Process.GetProcessesByName("ArcOSOverlay")) { OverlayIds.Add(pr.Id); } } foreach (var acc in CheckedAccounts) { try { await Task.Run(() => EnterAccountIntoTheGame(acc), token); } catch (Exception ex) { ShowError($"{ex.Message}\r{ex.StackTrace}"); break; } Thread.Sleep(2000); } }
/// <summary> /// Ожидание запуска самой игры /// </summary> /// <returns></returns> private void EnterToGame() { if (token.IsCancellationRequested) { return; } sim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LMENU, VirtualKeyCode.F4); Thread.Sleep(3000); for (var i = 0; i < 1; i++) { sim.Keyboard.Sleep(500); sim.Keyboard.KeyPress(VirtualKeyCode.TAB); } sim.Keyboard.Sleep(500); sim.Keyboard.KeyPress(VirtualKeyCode.RETURN); for (var i = 0; i < 30; i++) { foreach (var p in Process.GetProcesses()) { if (p.ProcessName == "ArcOSOverlay" && !OverlayIds.Contains(p.Id)) { OverlayIds.Add(p.Id); if (OverlayIds.Count == PemIds.Count * 2 + 2) { sim.Keyboard.Sleep(1000); sim.Keyboard.KeyPress(VirtualKeyCode.RETURN); foreach (var proc in Process.GetProcessesByName("pem")) { if (PemIds.Contains(proc.Id)) { continue; } PemIds.Add(proc.Id); } Thread.Sleep(500); return; } } } Thread.Sleep(1000); } }