Example #1
0
        public async Task WaitAndAttachToProcess()
        {
            ProcessStatus = GameProcessStatus.ProcessNotAvailable;
            while (_gameProcess == null)
            {
                _gameProcess = Process.GetProcessesByName("DragonAge2").FirstOrDefault();

                if (_gameProcess != null)
                {
                    _gameProcess.EnableRaisingEvents = true;
                    _gameProcess.Exited += OnGameProcessExited;
                    break;
                }

                await Task.Delay(1000).ConfigureAwait(false);
            }

            OnGameProcessStatusChange(GameProcessStatus.WaitingUntilReadyForInjection);

            await _codeInjectionReadinessChecker.WaitUntilCodeIsReadyToBeInjected(_gameProcess);

            _gameValueService = _cameraToolsFactory.CreateGameValueService(_gameProcess);

            OnGameProcessStatusChange(GameProcessStatus.Attached);
        }
Example #2
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            //infinity loop
            while (true)
            {
                Thread.Sleep(200);

                //connect to process if started
                openGame();

                //if process not started and connected
                if (!IsProcessLoaded)
                {
                    continue;
                }

                //if process started and connected
                GameProcessStatus.Invoke(new MethodInvoker(delegate
                {
                    GameProcessStatus.Text      = "STARTED!";
                    GameProcessStatus.ForeColor = Color.DarkGreen;
                    HPText.Visible    = true;
                    HPSet.Visible     = true;
                    ScoreText.Visible = true;
                    ScoreSet.Visible  = true;
                }));
            }
        }
Example #3
0
        private void OnGameProcessStatusChange(GameProcessStatus newStatus)
        {
            ProcessStatus = newStatus;

            if (newStatus != GameProcessStatus.Attached)
            {
                if (AreTacticalCameraTriggersEnabled)
                {
                    DisableTacticalCamera();
                }
            }
            else
            {
                EnableTacticalCameraTriggers();
            }

            var eventHandler = ProcessStatusChanged;

            eventHandler?.Invoke(this, new ProcessStatusChangeEventArgs(newStatus));
        }
Example #4
0
 public ProcessStatusChangeEventArgs(GameProcessStatus newStatus)
 {
     NewStatus = newStatus;
 }