Esempio n. 1
0
 /// <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));
             }
         }
     }
 }
Esempio n. 2
0
        /// <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));
                    }
                }
            }
        }