// FileName: FindProcessPid.cpp
// Function: Find Pid by ProcessName
#include <string.h>
#include <stdio.h>
#include <Windows.h>
#include <tlhelp32.h> //CreateToolhelp32Snapshot
#define ArraySize(ptr) (sizeof(ptr) / sizeof(ptr[0]))
BOOL FindProcessPid(LPCSTR ProcessName, DWORD& dwPid);
int main()
{
LPCSTR ListApps[]{
"QQ.exe", "chrome.exe"
};
// StopMyService();
DWORD dwPid = 0;
for (int i = 0; i < ArraySize(ListApps); i++)
{
if (FindProcessPid(ListApps[i], dwPid))
{
printf("[%s] [%d]n", ListApps[i], dwPid);
}
else
{
printf("[%s] [Not Found]n", ListApps[i]);
}
}
return 0;
}
BOOL FindProcessPid(LPCSTR ProcessName, DWORD& dwPid)
{
HANDLE hProcessSnap;
PROCESSENTRY32 pe32;
// Take a snapshot of all processes in the system.
hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
{
return(FALSE);
}
pe32.dwSize = sizeof(PROCESSENTRY32);
if (!Process32First(hProcessSnap, &pe32))
{
CloseHandle(hProcessSnap); // clean the snapshot object
return(FALSE);
}
BOOL bRet = FALSE;
do
{
if (!strcmp(ProcessName, pe32.szExeFile))
{
dwPid = pe32.th32ProcessID;
bRet = TRUE;
break;
}
} while (Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
return bRet;
}
运行效果:
原文链接: https://www.cnblogs.com/albertofwb/p/6231102.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/246626
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!