Проверить, что завершен процесс - 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("Приложение закрыто");
}