功能描述:
- 根据程序名称获取该程序的PID/父进程的PID;
- 根据某个PID获取该PID对应的程序名称;
- 获取某个进程下所有子进程PID(仅第一层子进程);
- 递归获取某个进程下所有子进程PID(由于子进程本身可能还存在子进程);
- 终止某个进程下的子程序。
*PID=process id
#include <stdio.h>
#include <string>
#include <Windows.h>
#include "tlhelp32.h"
#include <vector>
using namespace std;
// convert char to wchar
void C2W(const char* szSrc, WCHAR* wszDst, int nMaxLen)
{
int vMinLen = MultiByteToWideChar(CP_ACP, 0, szSrc, -1, NULL, 0);
if (vMinLen > nMaxLen)
{
MessageBoxA(NULL, szSrc, "convert failed", MB_ICONWARNING);
return;
}
MultiByteToWideChar(CP_ACP, 0, szSrc, -1, wszDst, vMinLen);
}
// get all sub pid by parent pid (first level sub Pid)
vector<DWORD> ListSubPidsByPpid(DWORD ppid) {
vector<DWORD> pids;
HANDLE hp = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
PROCESSENTRY32 pe = {
0 };
pe.dwSize = sizeof(PROCESSENTRY32)