// windows_31_ProcBase.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <windows.h>#include <psapi.h> //另一块进程操作APIvoid ProcModule( ){ printf( "All Modules:\n" ); //当前进程句柄 HANDLE hProc = GetCurrentProcess( ); //获取模块句柄 HMODULE hModules[256] = { 0 }; DWORD nNeed = 0; EnumProcessModules( hProc,hModules,256,&nNeed); //计算获取到句柄数量 DWORD nCount = nNeed / sizeof( HMODULE ); //打印句柄 for (DWORD nIndex = 0; nIndex < nCount;nIndex++) { //获取各模块所对应的文件名和路径 CHAR szPath[MAX_PATH] = { 0 }; GetModuleFileNameEx( hProc, hModules[nIndex], szPath, MAX_PATH ); printf( "\t%d: %p, %s\n", nIndex + 1, hModules[nIndex] ,szPath); }}void ProcInfo( ){ //获取进程ID DWORD nID = GetCurrentProcessId( ); //获取进程句柄(-1,伪句柄) HANDLE hProc = GetCurrentProcess( ); printf( "Process ID: %d\n", nID ); printf( "Process Handle: %p\n", hProc ); //根据进程ID获取进程实际句柄 hProc = OpenProcess( PROCESS_ALL_ACCESS, FALSE, nID ); printf( "Process Handle: %p\n", hProc );}int _tmain(int argc, _TCHAR* argv[]){ ProcInfo( ); ProcModule( ); return 0;}