vc怎样通过进程名获取进程的工作目录.
2008-03-20 21:28
357 查看
先用OpenProcess()函数将进程打开后,利用EnumProcessModules()函数枚举该进程的模块,利用GetModuleFileNameEx()函数就能取得该进程的路径
#include <stdio.h>
#include <windows.h>
#include "PSAPI.H"
#pragma comment( lib, "PSAPI.LIB" )
int main(void)
{
DWORD processid[1024],needed,processcount,i;
HANDLE hProcess;
HMODULE hModule;
char path[MAX_PATH] = "";
char temp[256];
printf("ShowProcessPath with [Process Status API]/n");
EnumProcesses(processid, sizeof(processid), &needed);
processcount=needed/sizeof(DWORD);
for (i=0;i<processcount;i++)
{
hProcess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,false,processid[i]);
if (hProcess)
{
EnumProcessModules(hProcess, &hModule, sizeof(hModule), &needed);
GetModuleFileNameEx(hProcess, hModule, path, sizeof(path));
GetShortPathName(path,path,256);
itoa(processid[i],temp,10);
printf("%s --- %s/n",path,temp);
}
else
{
printf("Failed!!!/n");
}
}
CloseHandle(hProcess);
CloseHandle(hModule);
itoa(processcount,temp,10);
printf("/nProcess Count:%s/n/n",temp);
return 0;
}
#include <stdio.h>
#include <windows.h>
#include "PSAPI.H"
#pragma comment( lib, "PSAPI.LIB" )
int main(void)
{
DWORD processid[1024],needed,processcount,i;
HANDLE hProcess;
HMODULE hModule;
char path[MAX_PATH] = "";
char temp[256];
printf("ShowProcessPath with [Process Status API]/n");
EnumProcesses(processid, sizeof(processid), &needed);
processcount=needed/sizeof(DWORD);
for (i=0;i<processcount;i++)
{
hProcess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ,false,processid[i]);
if (hProcess)
{
EnumProcessModules(hProcess, &hModule, sizeof(hModule), &needed);
GetModuleFileNameEx(hProcess, hModule, path, sizeof(path));
GetShortPathName(path,path,256);
itoa(processid[i],temp,10);
printf("%s --- %s/n",path,temp);
}
else
{
printf("Failed!!!/n");
}
}
CloseHandle(hProcess);
CloseHandle(hModule);
itoa(processcount,temp,10);
printf("/nProcess Count:%s/n/n",temp);
return 0;
}
相关文章推荐
- 通过进程名获取进程的工作目录
- VC 获取当前工作目录和执行目录的一些方法
- VC下通过进程ID获取进程镜像文件路径的方法及其存在的缺陷
- VC获取当前程序目录[工作目录 VS 程序启动目录]
- 转:VC获取当前程序目录[工作目录 VS 程序启动目录]
- VC++ 通过进程名或进程ID获取进程句柄
- VC获取当前程序目录[工作目录 VS 程序启动目录]
- VC获取当前程序目录[工作目录 VS 程序启动目录]
- 在VC中获取获取当前可执行程序工作目录
- VC++ 通过进程名或进程ID获取进程句柄
- VC获取当前程序目录[工作目录 VS 程序启动目录]
- VC 获取当前工作目录和执行目录的一些方法
- Linux下获取当前进程的执行文件的绝对路径和所在目录(通过/proc/self/exe链接)
- 获取应用程序的当前目录(VC)
- 通过获取HDFS目录/文件夹大小来控制reduce个数
- JVM中进程的工作目录
- 如何通过proc目录查看每个进程的内存和swap的占用
- 通过获取系统进程快照获取进程pid以及杀进程(win下获取进程名和linux下获取进程路径)
- 如何通过进程ID获取进程名
- C++ 获取当前工作目录的方法