/// <summary> /// Attempts to determine if a process is added but is dynamically tracked /// </summary> /// <param name="processName"></param> /// <param name="processId"></param> /// <param name="processParent"></param> private static void HandleUnknownProcess(string processName, int processId, int processParent) { if (OnUntrackedProcessAdded == null) { return; } if (!ManagedProcesses.Values.AsParallel().Any(x => x.Id == processId || x.FindChildById(processId) != null)) { var @event = new UntrackedProcessEventArgs(processName, processId, processParent); foreach (UntrackedProcessHandler Invoke in OnUntrackedProcessAdded.GetInvocationList()) { @event.Filters = null; @event.Callback = null; Invoke(null, @event); if (@event.Create) { @event.Callback?.Invoke(GetProcessFromId(processId, @event.Filters)); } } } }
/// <summary> /// Attempts to determine if a process is added but is dynamically tracked /// </summary> /// <param name="processName"></param> /// <param name="processId"></param> /// <param name="processParent"></param> /// <param name="processPath"></param> /// <param name="commandLineArguments"></param> private static void HandleUnknownProcess(string processName, int processId, int processParent, string processPath, List <string> commandLineArguments) { if (OnUntrackedProcessAdded == null) { return; } if (!ManagedProcesses.Values.AsParallel().Any(x => x.Id == processId || x.FindChildById(processId) != null)) { var @event = new UntrackedProcessEventArgs(processName, processParent, processId, processPath, commandLineArguments); foreach (var @delegate in OnUntrackedProcessAdded.GetInvocationList()) { var invoke = (UntrackedProcessHandler)@delegate; @event.Filters = null; @event.Callback = null; invoke(null, @event); if (@event.Create) { @event.Callback?.Invoke(GetProcessFromId(processId, @event.Filters, processPath, commandLineArguments, false)); } } } }