public void Start() { ensureSingleRun(); if (process == null || process.HasExited) { process = new Process(); process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.FileName = PROMCSS_NMAE; process.StartInfo.Arguments = @"-d ."; process.OutputDataReceived += new DataReceivedEventHandler(process_data_received); process.ErrorDataReceived += new DataReceivedEventHandler(process_data_received); var logFileStream = File.Open(LOG_FILE, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read); logFileStream.SetLength(0); logFileStreamWrite = new StreamWriter(logFileStream); logFileStreamWrite.AutoFlush = true; process.Start(); process.BeginOutputReadLine(); process.BeginErrorReadLine(); ProcessStartEvent?.Invoke(this); // process.WaitForExit(); } }
public static void listenProcessesCreation(ProcessStartEvent handler) { processStartHandler = handler; ManagementEventWatcher startWatch = new ManagementEventWatcher( new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); startWatch.EventArrived += new EventArrivedEventHandler(startWatch_EventArrived); startWatch.Start(); }
protected virtual void OnProcessStartEvent(TResult obj) { ProcessStartEvent?.Invoke(obj); }