System.Diagnostics.Process класс получает большую часть необходимой информации. Вы можете попробовать это.
Process[] currentProcesses = Process.GetProcesses();
Console.WriteLine("MainWindowTitle: {0}",currentProcesses[0].MainWindowTitle);
Console.WriteLine(currentProcesses[0].StartInfo.WindowStyle);
Я не уверен, предоставляет ли он все, что вам нужно. Но класс Process способен предоставить так много информации о запущенных процессах.
Перед тем, как перейти к API, полезно взглянуть на класс Process.