win32API如何获取进程句柄

要获取某个进程的句柄,首先要获取该进程的ID,通过ID获取进程的句柄。代码如下:

需要用到的头文件:

#include "tlhelp32.h"
#include "windows.h"
DWORD GetProcessidByName(const wchar_t* name)
{
	PROCESSENTRY32 pe ={0};
	DWORD id = 0;
	HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	pe.dwSize = sizeof(PROCESSENTRY32);
	if (!Process32First(hSnapshot, &pe))
	{
		return 0;
	}
	while (1)
	{
		pe.dwSize = sizeof(PROCESSENTRY32);
		if (Process32Next(hSnapshot, &pe) == FALSE)
		{
			break;
		}
			
		if (wcscmp(pe.szExeFile, name) == 0)
		{
			id = pe.th32ProcessID;
			break;
		}

	}
	CloseHandle(hSnapshot);
	return id;
}
HANDLE GetProcessHandleByID(int nID)//通过进程ID获取进程句柄
{
	return OpenProcess(PROCESS_ALL_ACCESS, FALSE, nID);
}

你可能感兴趣的:(C/C++基础)