Получаю имена нужных процессов. В label11 хранится имя процесса активного окна. Нужно сравнить каждое имя процессов с именем процесса активного окна. Но получается, что сравнивается только 1 элемент. У меня их 2, а может быть и больше.
var process = Process.GetProcessesByName(processName).FirstOrDefault();
if (process != null)
{
//Сравниваем полученные ID с ID активного окна
if (label11.Text != process.ProcessName)
{
if (timer1.Enabled == false)
{
timer1.Enabled = true;
_stopWatch.Start();
}
}
else
{
timer1.Enabled = false;
_stopWatch.Stop();
}
}
ПОПРАВКА: он сравнивает только последний элемент
Вы сами написали в своем коде:
var process = Process.GetProcessesByName(processName).FirstOrDefault();
т.е. в переменной process хранится только 1 процесс. Если вы хотите получить все процессы с именем processName, то вы должны сделать так:
var processes = Process.GetProcessesByName(processName);
foreach (var process in processes)
{
if (process != null)
{
//Сравниваем полученные ID с ID активного окна
if (label11.Text != process.ProcessName)
{
if (timer1.Enabled == false)
{
timer1.Enabled = true;
_stopWatch.Start();
}
}
else
{
timer1.Enabled = false;
_stopWatch.Stop();
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей