Example #1
0
 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();
        }
Example #3
0
 protected virtual void OnProcessStartEvent(TResult obj)
 {
     ProcessStartEvent?.Invoke(obj);
 }