核心API:
CreateToolhelp32Snapshot
Process32First
Process32Next
实现代码:
/*ASCII编码*/
#include<Windows.h>
#include<Tlhelp32.h>
#include<stdio.h>
int main() {
HANDLE hSnapShot;
PROCESSENTRY32 pro32;
pro32.dwSize = sizeof(PROCESSENTRY32);
// 1、获得当前进程的快照
hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnapShot == INVALID_HANDLE_VALUE) {
return -1;
}
bool bMore;
// 2、遍历进程的名称是否为指定名称,获取指定进程名称的PID
bMore = Process32First(hSnapShot, &pro32);
while (bMore) {
// 3、获取指定进程名称的PID
if (!strcmp(pro32.szExeFile, "thread.exe")) {
printf("%s----%d
", pro32.szExeFile,pro32.th32ProcessID);
}
bMore = Process32Next(hSnapShot, &pro32); //遍历
}
// 4、释放资源
CloseHandle(hSnapShot);
system("pause");
return 0;
}