Здравствуйте, нужна помощь знатка, как привязать внешний процесс в своем приложении? Пример - мое приложение запускает некое приложение, нужно если процесс моего приложения завершался, также и завершился процесс приложения которое было запущено моим приложением. ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = @"C:\ProgramData\123\123.exe"; startInfo.Arguments = @" -start"; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; Process process = new Process(); process.StartInfo = startInfo; process.Start(); process.WaitForExit(); Код ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = @"C:\ProgramData\123\123.exe"; startInfo.Arguments = @" -start"; startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; Process process = new Process(); process.StartInfo = startInfo; process.Start(); process.WaitForExit();
200р )) Такие смешные суммы. Тебе нужно создать службу(отдельный процесс) которая будет следить за процессом через `ManagementEventWatcher` и в случае какого-то действия завершать процесс, очень удобно. Пример мониторинга за процессами: // Событие которое что-то делает когда какой-то процесс завершен. private static void StopWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.Beep(); // Звуковой сигнал Windows File.AppendAllText("Watcher.txt", $"Завершён процесс: { e.NewEvent.Properties["ProcessName"]?.Value}\r\n"); // Запись в файл например процесса который завершился } // Метод который начинает слежку за процессами private static void MonitoringProcess() { // наблюдатель событий изменений using var stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); stopWatch.EventArrived += StopWatch_EventArrived; // Подключаем событие stopWatch.Start(); // Запускаем слежку } Код // Событие которое что-то делает когда какой-то процесс завершен. private static void StopWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.Beep(); // Звуковой сигнал Windows File.AppendAllText("Watcher.txt", $"Завершён процесс: { e.NewEvent.Properties["ProcessName"]?.Value}\r\n"); // Запись в файл например процесса который завершился } // Метод который начинает слежку за процессами private static void MonitoringProcess() { // наблюдатель событий изменений using var stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); stopWatch.EventArrived += StopWatch_EventArrived; // Подключаем событие stopWatch.Start(); // Запускаем слежку } Можно следить и за определённым процессом, или сверять какой-либо процесс и выполнять определённые действия...