如何获得“的路径”;audiodg.exe“;Windows7?VB.NET

如何获得“的路径”;audiodg.exe“;Windows7?VB.NET,vb.net,exception,process,path,Vb.net,Exception,Process,Path,我尝试使用类“Process”,但我总是抛出一个异常 当我试图获得其他进程的路径时,也会发生同样的情况,例如:“系统”等进程 我已经尝试过使用类“WMI”,但两者都无法获得前面提到的进程的路径 我一直在考虑使用原生API,但我认为这不是一个好主意,但不管怎样,如果有必要,我会使用它们 有人知道其他的选择吗 我这样问是因为“Process Hacker”等应用程序显示了需要获取路径的进程的确切路径,例如: 因此,我认为有可能获得这些路径 很抱歉我的英语很差,但我认为问题的重点已经理解。以下WM

我尝试使用类“Process”,但我总是抛出一个异常

当我试图获得其他进程的路径时,也会发生同样的情况,例如:“系统”等进程

我已经尝试过使用类“WMI”,但两者都无法获得前面提到的进程的路径

我一直在考虑使用原生API,但我认为这不是一个好主意,但不管怎样,如果有必要,我会使用它们

有人知道其他的选择吗

我这样问是因为“Process Hacker”等应用程序显示了需要获取路径的进程的确切路径,例如:

因此,我认为有可能获得这些路径


很抱歉我的英语很差,但我认为问题的重点已经理解。

以下WMI查询将提供您正在查找的信息:

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

您可以在中执行查询以确认输出是您想要的。

以下WMI查询将提供您要查找的信息:

SELECT ExecutablePath FROM Win32_Process WHERE Name = 'audiodg.exe'
您可以在中执行查询,以确认输出是您想要的

  • 系统进程实际上没有文件,因此process Hacker会显示内核文件名。您可以通过调用然后调用第一个条目来获取此信息。或者,您可以将NtQuerySystemInformation与SystemModuleInformation一起使用
  • audiodg.exe
    是一个受DRM保护的进程,这就是为什么大多数程序不能很好地使用它。您可以使用
    process\u QUERY\u LIMITED\u INFORMATION
    access and call/打开流程,也可以将NtQuerySystemInformation与SystemProcessId信息一起使用
  • 如果不使用p/invoke,就无法获取此信息

  • 系统进程实际上没有文件,因此process Hacker会显示内核文件名。您可以通过调用然后调用第一个条目来获取此信息。或者,您可以将NtQuerySystemInformation与SystemModuleInformation一起使用
  • audiodg.exe
    是一个受DRM保护的进程,这就是为什么大多数程序不能很好地使用它。您可以使用
    process\u QUERY\u LIMITED\u INFORMATION
    access and call/打开流程,也可以将NtQuerySystemInformation与SystemProcessId信息一起使用

  • 如果不使用p/invoke,则无法获取此信息。

    您可以使用shell命令
    where
    ,例如
    where audiodg.exe
    ,该命令应生成如下内容:
    C:\Windows\System32\audiodg.exe
    。您可以从VB代码中执行它并捕获输出。请记住处理“未找到”异常

    如何捕获控制台输出:


    您可以使用shell命令
    where
    ,例如
    where audiodg.exe
    ,该命令应生成如下内容:
    C:\Windows\System32\audiodg.exe
    。您可以从VB代码中执行它并捕获输出。请记住处理“未找到”异常

    如何捕获控制台输出:


    鉴于wj32更好的答案,请忽略我自己的答案。鉴于wj32更好的答案,请忽略我自己的答案。