public ProcessPair(LoadedProcess dependent, LoadedProcess independent) { Dependent = dependent; Independent = independent; StopProcess = false; ReLaunch = false; }
private ManagementEventWatcher WatchForProcessEnd(LoadedProcess process) { string queryString = "SELECT TargetInstance" + " FROM __InstanceDeletionEvent " + "WITHIN 10 " + " WHERE TargetInstance ISA 'Win32_Process' " + " AND TargetInstance.Name = '" + process.Name + "'"; // The dot in the scope means use the current machine string scope = @"\\.\root\CIMV2"; // Create a watcher and listen for events ManagementEventWatcher watcher = new ManagementEventWatcher(scope, queryString); watcher.EventArrived += ProcessEnded; watcher.Start(); return(watcher); }
private ManagementEventWatcher WatchForProcessStart(LoadedProcess process) { string queryString = "SELECT TargetInstance" + " FROM __InstanceCreationEvent " + "WITHIN 10 " + " WHERE TargetInstance ISA 'Win32_Process' " + " AND TargetInstance.Name = '" + process.Name + "'"; // The dot in the scope means use the current machine string scope = @"\\.\root\CIMV2"; //initialize already running processes if (Process.GetProcessesByName(Path.GetFileNameWithoutExtension(process.Name)).Any()) { process.Running = true; } // Create a watcher and listen for events ManagementEventWatcher watcher = new ManagementEventWatcher(scope, queryString); watcher.EventArrived += ProcessStarted; watcher.Start(); return(watcher); }