Пример #1
0
        public void HandleProcessQuit(IProcess process, LeagueProcessType type)
        {
            logger.Info("Dispatching Process Quit " + type);
            if (type != LeagueProcessType.Patcher || process == mainPatcherProcess)
            {
                IProcess removedProcess;
                processesByType.TryRemove(type, out removedProcess);
            }
            else
            {
                return;
            }

            if (type == LeagueProcessType.RadsUserKernel)
            {
                ; // hue
            }
            else if (type == LeagueProcessType.Launcher)
            {
                phaseContext.HandleLauncherQuit(process);
            }
            else if (type == LeagueProcessType.Patcher)
            {
                phaseContext.HandlePatcherQuit(process);
            }
            else if (type == LeagueProcessType.PvpNetClient)
            {
                phaseContext.HandleClientQuit(process);
            }
            else if (type == LeagueProcessType.GameClient)
            {
                phaseContext.HandleGameQuit(process);
            }
        }
 public LeagueProcessDetectedArgs(
     LeagueProcessType leagueProcessType,
     CreatedProcessDescriptor createdProcessDescriptor)
 {
     ProcessType       = leagueProcessType;
     ProcessDescriptor = createdProcessDescriptor;
 }
 public LeagueProcessDetectedArgs(
    LeagueProcessType leagueProcessType,
    CreatedProcessDescriptor createdProcessDescriptor)
 {
    ProcessType = leagueProcessType;
    ProcessDescriptor = createdProcessDescriptor;
 }
        /// <summary>
        /// Event handler for when the process watcher detects the launch of a new process.
        /// </summary>
        /// <param name="s"></param>
        /// <param name="e"></param>
        private void HandleNewProcessFound(CreatedProcessDescriptor desc)
        {
            if (!enabled)
            {
                return;
            }

            string lowerProcessName                  = desc.ProcessName.ToLower();
            LeagueProcessDetectedHandler @event      = null;
            LeagueProcessType            processType = LeagueProcessType.Invalid;

            if (lowerProcessName.Contains(kRadsUserKernelProcessNameLower))
            {
                @event      = RadsUserKernelLaunched;
                processType = LeagueProcessType.RadsUserKernel;
            }
            else if (lowerProcessName.Contains(kLauncherProcessNameLower))
            {
                @event      = LauncherLaunched;
                processType = LeagueProcessType.Launcher;
            }
            else if (lowerProcessName.Contains(kPatcherProcessNameLower))
            {
                @event      = PatcherLaunched;
                processType = LeagueProcessType.Patcher;
            }
            else if (lowerProcessName.Contains(kPvpNetProcessNameLower))
            {
                @event      = AirClientLaunched;
                processType = LeagueProcessType.PvpNetClient;
            }
            else if (lowerProcessName.Contains(kGameClientProcessNameLower))
            {
                @event      = GameClientLaunched;
                processType = LeagueProcessType.GameClient;
            }
            else if (lowerProcessName.Contains(kBugSplatProcessNameLower))
            {
                @event      = GameClientCrashed;
                processType = LeagueProcessType.BugSplat;
            }

//         logger.Info("###########");
//         logger.Info((@event == null) + " " + lowerProcessName + " " + processType);
//         logger.Info("###########");

            if (processType != LeagueProcessType.Invalid)
            {
                logger.Info(lowerProcessName);
                var capture = @event;
                if (capture != null && processType != LeagueProcessType.Invalid)
                {
                    capture(new LeagueProcessDetectedArgs(processType, desc));
                }
            }
        }
        private void HandleLeagueProcessQuit(IProcess process, LeagueProcessType processType)
        {
            logger.Info("Handling process " + process.Id + " quit");
            LeagueSession session;

            if (sessionsByProcessId.TryGetValue(process.Id, out session))
            {
                logger.Info("Session for " + process.Id + " found!");
                session.HandleProcessQuit(process, processType);
                sessionsByProcessId.Remove(process.Id);
            }
            else
            {
                logger.Error("Session for " + process.Id + " not found!");
            }
        }
Пример #6
0
        public void HandleProcessQuit(IProcess process, LeagueProcessType type)
        {
            logger.Info("Dispatching Process Quit " + type);
             if (type != LeagueProcessType.Patcher || process == mainPatcherProcess) {
            IProcess removedProcess;
            processesByType.TryRemove(type, out removedProcess);
             } else {
            return;
             }

             if (type == LeagueProcessType.RadsUserKernel)
            ; // hue
             else if (type == LeagueProcessType.Launcher)
            phaseContext.HandleLauncherQuit(process);
             else if (type == LeagueProcessType.Patcher) {
               phaseContext.HandlePatcherQuit(process);
             } else if (type == LeagueProcessType.PvpNetClient)
            phaseContext.HandleClientQuit(process);
             else if (type == LeagueProcessType.GameClient)
            phaseContext.HandleGameQuit(process);
        }
Пример #7
0
        public void HandleProcessLaunched(IProcess process, LeagueProcessType type)
        {
            logger.Info("Dispatching Process Launched " + type);
             OnProcessLaunched(this, new LeagueSessionProcessLaunchedArgs(type, process));

             // only handle the first patcher process
             if (type != LeagueProcessType.Patcher || mainPatcherProcess == null) {
            processesByType.AddOrUpdate(type, process, (a, b) => process);
             } else {
            return;
             }

             if (type == LeagueProcessType.RadsUserKernel)
            phaseContext.HandleRadsUserKernelLaunched(process);
             else if (type == LeagueProcessType.Launcher)
            phaseContext.HandleLauncherLaunched(process);
             else if (type == LeagueProcessType.Patcher) {
            phaseContext.HandlePatcherLaunched(mainPatcherProcess = process);
             } else if (type == LeagueProcessType.PvpNetClient)
            phaseContext.HandleClientLaunched(process);
             else if (type == LeagueProcessType.GameClient)
            phaseContext.HandleGameLaunched(process);
        }
Пример #8
0
        public void HandleProcessLaunched(IProcess process, LeagueProcessType type)
        {
            logger.Info("Dispatching Process Launched " + type);
            OnProcessLaunched(this, new LeagueSessionProcessLaunchedArgs(type, process));

            // only handle the first patcher process
            if (type != LeagueProcessType.Patcher || mainPatcherProcess == null)
            {
                processesByType.AddOrUpdate(type, process, (a, b) => process);
            }
            else
            {
                return;
            }

            if (type == LeagueProcessType.RadsUserKernel)
            {
                phaseContext.HandleRadsUserKernelLaunched(process);
            }
            else if (type == LeagueProcessType.Launcher)
            {
                phaseContext.HandleLauncherLaunched(process);
            }
            else if (type == LeagueProcessType.Patcher)
            {
                phaseContext.HandlePatcherLaunched(mainPatcherProcess = process);
            }
            else if (type == LeagueProcessType.PvpNetClient)
            {
                phaseContext.HandleClientLaunched(process);
            }
            else if (type == LeagueProcessType.GameClient)
            {
                phaseContext.HandleGameLaunched(process);
            }
        }
Пример #9
0
 public bool TryGetProcess(LeagueProcessType processType, out IProcess process)
 {
     return(processesByType.TryGetValue(processType, out process));
 }
Пример #10
0
 public IProcess GetProcessOrNull(LeagueProcessType processType)
 {
     return(processesByType.GetValueOrDefault(processType));
 }
 public LeagueSessionProcessLaunchedArgs(LeagueProcessType type, IProcess process)
 {
    this.type = type;
    this.process = process;
 }
 public LeagueSessionProcessLaunchedArgs(LeagueProcessType type, IProcess process)
 {
     this.type    = type;
     this.process = process;
 }
Пример #13
0
 public IProcess GetProcessOrNull(LeagueProcessType processType)
 {
     return processesByType.GetValueOrDefault(processType);
 }
Пример #14
0
 public bool TryGetProcess(LeagueProcessType processType, out IProcess process)
 {
     return processesByType.TryGetValue(processType, out process);
 }