您的位置:首页 > 其它

获得指定PID进程所在的路径

2012-06-13 15:23 253 查看
char* GetProcessPath(DWORD dwID)
{
char sPath[MAX_PATH];

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

if( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded ) )
{
DWORD dw = GetModuleFileNameEx( hProcess, hMod, sPath, MAX_PATH );
}
CloseHandle(hProcess);
}
return sPath;
}


在一个按钮事件中执行代码如下:

C/C++ code
const char *chProcName = "notepad.exe";    // 要查找的进程名
DWORD dwID;
if (FindProcess(chProcName, dwID))
{
char* chPath = GetProcessPath(dwID);
KillProcess(dwID);
}


按理说函数在执行完就释放局部内存了,为什么我断点在函数调用处调试,一直到if语句的花括号结束才释放?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: