C ++ WinAPI - 如何从名称中获取可执行文件的安装路径

时间:2014-12-15 18:50:13

标签: c++ winapi

有没有办法通过使用其名称来获取可执行文件(而不是自己)的安装路径。 假设我想找到从进程列表快照在硬盘驱动器上安装正在运行的进程(例如:“notepad.exe”)的路径。

最佳,

4 个答案:

答案 0 :(得分:2)

进程列表为您提供每个正在运行的进程的完整路径和文件名。只需枚举查看每个路径的文件名部分的列表,当您找到您感兴趣的文件名时,只需截断路径中的文件名并根据需要使用剩余的文件夹路径。

答案 1 :(得分:1)

进程列表快照是否包含该信息。

事后不可能重建那些信息。即使您还拥有与进程列表快照匹配的确切磁盘状态的快照,磁盘上也可以有多个文件具有相同的文件。

列出进程时获取可执行文件路径,并将其存储在快照中。一旦流程退出,就太晚了。

答案 2 :(得分:1)

您可以使用SearchPath() function

答案 3 :(得分:-2)

这些功能应该有所帮助

HMODULE WINAPI GetModuleHandle(
  _In_opt_  LPCTSTR lpModuleName
);

然后

DWORD WINAPI GetModuleFileName(
  _In_opt_  HMODULE hModule,
  _Out_     LPTSTR lpFilename,
  _In_      DWORD nSize
);