在WIN2000里怎样用进程ID获得该进程文件所在的路径?Win32 Api高手请指点!

phy0292 2004-04-23 09:10:42
[求助]Win32 Api高手请指点!
问题的提出:我有一程序在98用Process32First和Process32Next获得各进程的ID和所执行的文件名等信息,并且在获得的文件名里已经包含了路径,但后来在WIN2000里调试时发现用Process32First和Process32Next获得的文件名并不包含路径。

解决的方法:所以我想问问在WIN2000里怎样用进程ID获得该进程的文件路径。如果不用进程ID获得各进程的文件路径也可以。

请知情者答复,也可以加我QQ:69351832
...全文
114 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
csubaicai 2004-07-08
  • 打赏
  • 举报
回复
void __fastcall TMainFrm::BtnFindClick(TObject *Sender)
{
ProcessList->Clear();
PROCESSENTRY32 pe = {sizeof(pe)};
DWORD dwPID;
GetWindowThreadProcessId(Handle, &dwPID);
void *pTH = CreateToolhelp32Snapshot(TH32CS_SNAPALL, dwPID); // 建立系统快照
Process32First(pTH,&pe);
while (GetLastError()!=ERROR_NO_MORE_FILES)
{
(pe.th32ProcessID));
HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION|PROCESS_VM_READ,FALSE,pe.th32ProcessID);
if(hProcess!=NULL)
{
HMODULE lphModule;
DWORD cbNeeded;
char lpFilename[260];
unsigned long nsize = sizeof(lpFilename);
memset(lpFilename,0,nsize);
if(EnumProcessModules(hProcess,&lphModule,sizeof(HMODULE),&cbNeeded))
{
GetModuleFileNameEx(hProcess,lphModule,lpFilename,nsize);
ShowMessage(lpFilename);
}
CloseHandle(hProcess);
}
Process32Next(pTH,&pe);
}
CloseHandle(pTH);
}

给我分,要不回答我的问题去,快!
phy0292 2004-04-27
  • 打赏
  • 举报
回复
psapi是个库#include<psapi.h>
sun_wyz 2004-04-27
  • 打赏
  • 举报
回复
什么是psapi啊?
sun_wyz 2004-04-25
  • 打赏
  • 举报
回复
什么是psapi啊?
类库 2004-04-24
  • 打赏
  • 举报
回复
Win2000、XP下可以用PSAPI
phy0292 2004-04-23
  • 打赏
  • 举报
回复
好的,我去看看,谢谢!
RamjetZhang 2004-04-23
  • 打赏
  • 举报
回复
GetModuleFileNameEx,大概吧,MSDN里有示范代码,没仔细看。

1,221

社区成员

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

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