进程_id取进程名()


#include <stdio.h>
#include <Windows.h>

#include <tlhelp32.h> //进程id取进程名需要次头文件

DWORD 窗口句柄_取进程id(HWND hwnd){
	DWORD dword = 0;;
	GetWindowThreadProcessId(hwnd, &dword);
	return dword;
}
void 进程_id取进程名(DWORD 进程id,char* nameBuf){
	HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
	PROCESSENTRY32 pe32;
	nameBuf[0] = 0;
	if (hProcessSnap != INVALID_HANDLE_VALUE)
	{
		pe32.dwSize = 296;
		BOOL boo = Process32Next(hProcessSnap, &pe32);
		while (boo){
			if (pe32.th32ProcessID == 进程id){
				memcpy(nameBuf, pe32.szExeFile, strlen(pe32.szExeFile)+1);
				break;
			}
			boo = Process32Next(hProcessSnap, &pe32);
		}
		CloseHandle(hProcessSnap);
	}
}


int main(){
	DWORD 进程id = 窗口句柄_取进程id((HWND)3215688);
	char name[250];
	进程_id取进程名(进程id, name);
	printf(name);
	printf("\r\n%d", (int)进程id);
	getchar();
	return 0;
}