Вы должны войти, чтобы создавать сообщения и темы.

Как узнать какие приложения запущены?

Добрый день! Мой вопрос может показать глупым и понятным, но я все равно хочу спросить: можно ли как то узнать какие приложения сейчас запущены и отображаются на панели задач? В интернете я ничего не смог подходящего найти:

using System;
using System.Management;
using System.Diagnostics;
using System.Windows;
public class Tests
{
private static void Main(string[] args)
{
Tests tests = new Tests();
Process[] processes = Process.GetProcesses();
foreach (Process process in processes)
{
if(process.MainWindowHandle != IntPtr.Zero)
Console.WriteLine(process);
}
}
}

подобный код приводит к выводу приложения которые даже не запускались с момента включения пк (например калькулятор):
System.Diagnostics.Process (explorer)
System.Diagnostics.Process (NVIDIA Share)
System.Diagnostics.Process (TextInputHost)
System.Diagnostics.Process (ApplicationFrameHost)
System.Diagnostics.Process (Calculator)
System.Diagnostics.Process (SystemSettings)
System.Diagnostics.Process (browser)
System.Diagnostics.Process (Skype)
System.Diagnostics.Process (devenv)
System.Diagnostics.Process (VsDebugConsole)
Надеюсь что моя проблема понятна и я когда нибудь получу на нее ответ)

В целом, спустя 2 дня поисков я нашел решение: %AppData%\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar
Но мне кажется это не совсем правильное решение для данной задачи...

Привет, можно проверять наличие заголовка главного окна процесса.

Process.GetProcesses().Where(a => !string.IsNullOrWhiteSpace(a.MainWindowTitle))