Я искал, как найти имя объекта процесса, полученного с помощью System.Diagnostics.Process.GetProcesses
(например, для процесса firefox
, «Firefox»), и ничего не смог найти. Я пытался использовать MainWindowTitle, но вместо того, чтобы возвращать «Firefox», он возвращает имя текущей вкладки, так как это то, что Firefox называет своим окном. Есть ли способ найти фактическое отображаемое имя процесса?
Получение имени процесса в VB.NET
Ответы (1)
For Each p As Process In Process.GetProcesses()
Debug.WriteLine(p.ProcessName)
Next
Это может сработать, но не проверено. https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.process.processname
person
StackDoubleFlow
schedule
23.08.2018
Process
имеет те же члены, что и он. СвойствоProcessName
— очевидный кандидат. Если вы действительно хотите, чтобы понятное имя отображалось в диспетчере задач, тогда эта информация не предоставляется классомProcess
. Не вдаваясь в подробности, я полагаю, что доступ к этой информации можно получить с помощью WMI, который предоставляет много подробной системной информации. - person jmcilhinney   schedule 23.08.2018Dim FireFoxProcesses As Process() = Process.GetProcessesByName("firefox")
. Основной процесс - единственный, который имеет непустоеMainWindowTitle
(не обязательноProcess(0)
). Заголовок окна будет именем (или Заголовком, как вы хотите его назвать) текущей выбранной вкладки. - person Jimi   schedule 23.08.2018Process.GetProcesses()
возвращает список всех видимых процессов (тех, у которых естьProcessName
). То же, что Диспетчер задач. Если вы ищете процессы Windowed, это все процессы, которые имеют ненулевое значениеMainWindowHandle
. - person Jimi   schedule 23.08.2018