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!"); } }
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 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); }
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); } }
public bool TryGetProcess(LeagueProcessType processType, out IProcess process) { return(processesByType.TryGetValue(processType, out process)); }
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; }
public IProcess GetProcessOrNull(LeagueProcessType processType) { return processesByType.GetValueOrDefault(processType); }
public bool TryGetProcess(LeagueProcessType processType, out IProcess process) { return processesByType.TryGetValue(processType, out process); }