如何从正在运行的进程中,获取某个进程的文件路径

weishenme1977 2005-03-14 12:02:30
我通过枚举进程,获取的PROCESSENTRY32植,怎样通过这个值得到每一个进程的路径,我是在WIN2000,或者 XP下.
...全文
207 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
柯本 2005-03-17
  • 打赏
  • 举报
回复
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/default.htm
weishenme1977 2005-03-16
  • 打赏
  • 举报
回复
帮人帮到底,该到哪儿去下SDK?
weishenme1977 2005-03-15
  • 打赏
  • 举报
回复
我的机器上怎么没有PSPAI的头文件和库文件,我应该把这两个文件拷贝到什么目录,编译后提示GetModuleFileNameEx这个函数未声明
柯本 2005-03-15
  • 打赏
  • 举报
回复
楼上的方法是可行的,
HANDLE h=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,pid); //pid为 ROCESSENTRY32 中th32ProcessID
HANDLE h=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,FALSE,processInfo.th32ProcessID);
if (h!=NULL)
GetModuleFileNameEx(h,(void **)processInfo.th32ModuleID,buff,1024);
else
buff[0]=0;
buff中为进程的全路径
当然,GetModuleFileNameEx是windows 2k SDK 的psapi中函数
-----------------------------
进程ID及Module HANDLE也可用psapi中的EnumProcesses,EnumProcessModules得到

如果你用过WMI的话,那有更详细的系统/进程信息
pepsi1980 2005-03-15
  • 打赏
  • 举报
回复
idProcess是你列举的进程的PID
CString CProcessInfo::GetProcessPath( DWORD idProcess )
{
CString sPath;

HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,
FALSE,
idProcess );
if( NULL != hProcess )
{
HMODULE hMod;
DWORD cbNeeded;

if( EnumProcessModules( hProcess, &hMod, sizeof( hMod ), &cbNeeded ) )
{
DWORD dw = GetModuleFileNameEx( hProcess, hMod, sPath.GetBuffer( MAX_PATH ), MAX_PATH );
sPath.ReleaseBuffer();
}

CloseHandle( hProcess );
}

return( sPath );
}
weishenme1977 2005-03-15
  • 打赏
  • 举报
回复
楼上说的方法不行,我用这个办法得到的路径是我的程序的当前路径
柯本 2005-03-15
  • 打赏
  • 举报
回复
42252343(大跃进的猪) 的方法是其一,那样要自已定义GetModuleFileNameEx
你还可以下载安装windows SDK,就有psapi.h及psapi.lib了
zhang_zhibin 2005-03-15
  • 打赏
  • 举报
回复
呵呵
42252343 2005-03-15
  • 打赏
  • 举报
回复
hDLL = LoadLibrary("psapi.dll");
if (hDLL != NULL)
{
GetModuleFileNameEx = (LPFNDLLFUNC1)GetProcAddres(hDLL, "GetModuleFileNameExA");
}
42252343 2005-03-14
  • 打赏
  • 举报
回复
hProcess = OpenProcess(...)
GetModuleFileNameEx(hProcess,...)
weishenme1977 2005-03-14
  • 打赏
  • 举报
回复
没有人帮我吗?我自己顶

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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