如何使用C++获取 进程的 绝对路径

DWORD GetProcessId(IN PCHAR szExeName)

{
DWORD dwRet = 0;
DWORD dwCount = 0;

HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (hSnapshot != INVALID_HANDLE_VALUE)
{
PROCESSENTRY32 pe = {0};
pe.dwSize = sizeof(PROCESSENTRY32);

BOOL bRet = Process32First(hSnapshot, &pe);

while (bRet)
{
if (!_stricmp(pe.szExeFile, szExeName))
{
dwCount++;
dwRet = pe.th32ProcessID;
}
bRet = Process32Next(hSnapshot, &pe);
}

if (dwCount > 1)
dwRet = 0xFFFFFFFF;

CloseHandle(hSnapshot);
}

return dwRet;
}
DWORD ID = GetProcessId("notepad.exe");
GetModuleFileNameEx(ID, NULL, path, sizeof(path));

猜你喜欢

转载自www.cnblogs.com/blogpro/p/11446030.html
今日推荐