【问题标题】:Win32API - How to get file name of process from process handle?Win32API - 如何从进程句柄中获取进程的文件名?
【发布时间】:2010-11-16 05:42:38
【问题描述】:

如何从进程句柄中获取进程的文件名?我正在使用 Win32 C++ (Visual C++ Express Edition)。

谢谢。

【问题讨论】:

    标签: c++ winapi process


    【解决方案1】:

    致电GetModuleFileNameEx。自 Windows 2000 起可用。

    DWORD WINAPI GetModuleFileNameEx(
      __in      HANDLE hProcess,
      __in_opt  HMODULE hModule,
      __out     LPTSTR lpFilename,
      __in      DWORD nSize
    );
    

    使用NULL作为第二个参数获取EXE文件的名称。

    【讨论】:

    • 谢谢,这正是我所需要的。
    • 这仅适用于 32 位进程的 32 位进程,否则您将收到错误消息。如果您不想这样做,请使用 GetProcessImageFileName
    【解决方案2】:

    GetProcessImageFileName function 检索指定进程句柄(WinXP、Server 2k3 或更高版本)的可执行文件的名称,QueryFullProcessImageName 用于 Vista 和 2k8 或更高版本。

    【讨论】:

    • GetProcessImageFileName 函数以设备形式返回路径,而不是驱动器号。 - 这很讨厌。 GetModuleFileNameEx 是正确的方法:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-07
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2010-10-26
    相关资源
    最近更新 更多