Для программы понадобилось получить "истинное имя процесса" под этим я подразумеваю человеческое описание программы как в диспетчере задач:
Как видно отображается красивое название открытой консоли Git "Git for Windows". Я использую стандартную библиотеку user32.dll и функции из нее:
[DllImport("user32.dll")]
public static extern IntPtr GetForegroundWindow();
public static extern UInt32 GetWindowThreadProcessId(IntPtr hwnd, ref Int32 pid);
Так же во всех приведены примерах pid я получаю следующим путем:
// Получаю pid активного окна
GetWindowThreadProcessId(GetForegroundWindow(), ref pid);
// Получаю процесс исходя из pid активного окна
Process process = Process.GetProcessById(pid);
Вот с этим процессом я дальше и работаю. Я пытаюсь получить название с помощью следующих вариантов:
1) Самый приятный вариант, так как дает наиболее человеческие названия:
p.MainModule.FileVersionInfo.FileDescription;
2) Просто получает заголовок окна приложения. Не всегда приятен, например в случае с git не работает(см. рисунок ниже):
p.MainWindowTitle;
Если брать у этого окна заголовок то получается белиберда и совсем не понятно.
3) Просто берем название процесса. Так же отклонил по понятным причинам (название процесса зачастую не равно название программы)
ProcessHeader = p.ProcessName;
Сейчас я использую все три варианта в том порядке в каком они приведены, если первый ничего не дает то используется второй, а если и со вторым облом то использую третий. До сих пор такая схем работала, но вот осечка (см. ниже). Ищу как апгрейдить.
P.S. Название сайтов получаю другим способом, не через процессы.
Если я не ошибаюсь, то на вкладке "Процессы" отображается описание процесса, а не его название. Само название отображается в "Подробности".
Описание процесса, храниться в самом файле. Для его получения вам надо вытащить инфу от туда примерно таким способом:
var fileVersionInfo = FileVersionInfo.GetVersionInfo(processPath); //получаем инфо из файла
var processDescription = fileVersionInfo.FileDescription; //Получаем описание.
Вот хорошая статья: тык
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Насколько мне известно, бегунок находится вне DOM, поэтому его можно прочитать только через 2 вышеуказанных метода
Как правильно собрать apk из react native? Я нашел вариант с expoНо apk чего-то не появляется:
При нажатие на кнопку репост вайбер или вотсап ссылка не проходит