Проверить, что завершен процесс - C#
Формулировка задачи:
Запущено приложение "Abbyy"
в случае если пользователь закрывает "Abbyy", моя программа должна это отловить и вызвать сообщение.
Только не работает. После того как пользователь закрывает приложение, программа все равно остается в списке процессов.
Вот такой код
Как отловить закрытие программы пользователем?
private void timer1_Tick(object sender, EventArgs e) { Process[] procList = Process.GetProcesses();//Получаем список запущенных процессов string[] Str = new string[procList.Length]; for (int i = 0; i < procList.Length; i++) { Str[i] = procList[i].ToString(); if (procList[i].ToString() == "System.Diagnostics.Process (Abbyy)") return; } MessageBox.Show("Приложение закрыто"); }
Решение задачи: «Проверить, что завершен процесс»
textual
Листинг программы
void Form1_Load(object sender, EventArgs args) { Process[] processes = Process.GetProcessesByName("abbyy"); if (processes.Length == 0) MessageBox.Show("Ничего не запущено"); else { foreach (var proc in processes) { proc.EnableRaisingEvents = true; proc.Exited += OnExited; } } } void OnExited(object sender, EventArgs args) { Process p = (Process)sender; p.Exited -= OnExited; p.Dispose(); MessageBox.Show("Приложение закрыто"); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д