Beispiel #1
0
        /// <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);
            }
        }
Beispiel #2
0
        /// <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);
            }
        }