如何获取进程对应的路径?

xldata 2003-11-10 03:38:54
知道了某进程ID,怎么得到它对应的EXE路径?
...全文
75 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xldata 2003-11-24
  • 打赏
  • 举报
回复
通过的,通过窗口句柄(g_FormHandle)获取对应程序路径:

DWORD hProcess;
HANDLE Process;
unsigned long cbNeeded;
HANDLE Modules;
char file_name[MAX_PATH];
AnsiString thePath;

GetWindowThreadProcessId(g_FormHandle,&hProcess);
Process=OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,0,hProcess);
if(EnumProcessModules(Process, &Modules, sizeof(Modules), &cbNeeded))
{
if (GetModuleFileNameExA(Process,Modules,file_name,sizeof(file_name)))
{
thePath=(ExtractFilePath(file_name)).c_str();
}
}

GetModuleFileName好像只得到名称,而不包括路径
prochf 2003-11-11
  • 打赏
  • 举报
回复
char FileName[MAX_PATH]="";
HANDLE ps = OpenProcess(1,false,id);//获得ID进程的句柄.
GetModuleFileName(ps,FileName, MAX_PATH);
FileName就是你要的.
HUANG_JH 2003-11-11
  • 打赏
  • 举报
回复
同意
sfemil 2003-11-10
  • 打赏
  • 举报
回复
OpenProcess
EnumProcessModules
对第一个Module调用
GetModuleFileNameEx

1,220

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧