Как получить путь к "audiodg.exe" Windows 7? VB.NET - PullRequest
0 голосов
/ 30 мая 2011

Я пытался с классом «Процесс», но я всегда выбрасывал исключение.

То же самое происходит, когда я пытаюсь найти путь к другим процессам, таким как: «Система» и другие.

Я уже пробовал с классом "WMI", но ни один из них не смог получить путь к уже упомянутым процессам.

Я думал об использовании нативных API, однако я думаю, что это нехорошая идея, но независимо от того, если необходимо, они будут использоваться.

Кто-нибудь знает какие-либо альтернативы?

Я спрашиваю об этом, потому что такие приложения, как «Process Hacker», показывают точный путьпроцессы, которым нужно получить путь, например:

Example 1 with the

Example 2 with the

По этой причине я думаю, что эти пути можно получить.

Я прошу прощения за мой плохой английский, но я думаю, что суть вопроса понятна.

Ответы [ 3 ]

3 голосов
/ 30 мая 2011
  1. Системный процесс на самом деле не имеет файла, поэтому Process Hacker покажет вам имя файла ядра.Вы можете получить это, вызвав EnumDeviceDrivers , а затем вызвав GetDeviceDriverFileName для первой записи.Или вы можете использовать NtQuerySystemInformation с SystemModuleInformation.
  2. audiodg.exe - это процесс, защищенный DRM, поэтому большинство программ не работают с ним.Вы можете либо открыть процесс с доступом PROCESS_QUERY_LIMITED_INFORMATION и вызвать GetProcessImageFileName / QueryFullProcessImageName , либо использовать NtQuerySystemInformation с SystemProcessIdInformation.

AFAIK нетспособ получить эту информацию без использования P / invoke.

1 голос
/ 01 мая 2014

Вы можете использовать команду оболочки where, например, where audiodg.exe, который должен выдать что-то вроде: C:\Windows\System32\audiodg.exe. Вы можете выполнить его из своего кода VB и захватить вывод. Не забудьте обработать исключение «не найдено».

Как захватить вывод консоли:

Как перенаправить вывод консоли

Считать вывод процесса консоли

0 голосов
/ 30 мая 2011

Следующий запрос WMI предоставит информацию, которую вы ищете:

SELECT ExecutablePath FROM Win32_Process WHERE Name = 'audiodg.exe'

Вы можете выполнить запрос в wbemtest.exe , чтобы подтвердить, что вывод - это то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...