Как надежно сопоставить заголовки окон с именами исполняемых файлов в C#?C#

Место общения программистов C#
Anonymous
Как надежно сопоставить заголовки окон с именами исполняемых файлов в C#?

Сообщение Anonymous »

Я пытаюсь сопоставить заголовки окон запущенных приложений с соответствующими именами исполняемых файлов в C#. В настоящее время я использую метод GetWindowText() для получения заголовка окна и вручную сопоставляю его с именем исполняемого файла.
Вот моя текущая реализация:

Код: Выделить всё

public string GetWindowTitle(IntPtr window)
{
StringBuilder title = new StringBuilder(10000);
if (GetWindowText(window, title, 10000) > 0)
{
return title.ToString();
}
return "";
}

public string GetGeneralName(string windowTitle)
{
if (windowTitle.Contains("Microsoft Visual Studio"))
{
return "devenv";
}
if (windowTitle.Contains("Brave"))
{
return "brave";
}
if (windowTitle.Contains("Google Chrome"))
{
return "chrome";
}
if (windowTitle.Contains("Visual Studio Code"))
{
return "Code";
}
return "";
}
Проблема этого подхода в том, что он не работает для заголовков окон, которые не указаны в методе GetGeneralName.
Например, если заголовок окна — «Процесс — Microsoft Visual Studio», я хочу динамически сопоставить его с «devenv» без жесткого кодирования сопоставления.

Подробнее здесь: https://stackoverflow.com/questions/788 ... names-in-c

Вернуться в «C#»