Я пытаюсь получить имя активного окна, как показано в списке приложений диспетчера задач (используя С#). У меня была та же проблема, что описана здесь. Я пытался сделать, как они описали, но у меня есть проблема, в то время как сфокусированное приложение является библиотекой изображений, я получаю исключение. Я также пробовал это, но ничто не дает ожидаемых результатов. На данный момент я использую:
IntPtr handle = IntPtr.Zero;
handle = GetForegroundWindow();
const int nChars = 256;
StringBuilder Buff = new StringBuilder(nChars);
if (GetWindowText(handle, Buff, nChars) > 0)
{
windowText = Buff.ToString();
}
и удалите то, что не имеет отношения к делу, на основе таблицы, которую я создал для наиболее распространенных приложений, но мне не нравится этот обходной путь. Есть ли способ получить имя приложения, как оно есть в диспетчере задач для всех запущенных приложений?