如何根据进程句柄得到进程名?
如何根据进程句柄得到进程名?
[解决办法]
- C/C++ code
void DisplayProcessNameAndID( DWORD processID ){ TCHAR szProcessName[MAX_PATH] = TEXT("<unknown>"); // Get a handle to the process. HANDLE hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processID ); // Get the process name. if (NULL != hProcess ) { HMODULE hMod; DWORD cbNeeded; //Given a handle to a process, this returns all the modules running within the process. //The first module is the executable running the process, //and subsequent handles describe DLLs loaded into the process. if ( EnumProcessModules( hProcess, &hMod, sizeof(hMod), &cbNeeded) ) { //This function returns the short name for a module, //typically the file name portion of the EXE or DLL GetModuleBaseName( hProcess, hMod, szProcessName, sizeof(szProcessName)/sizeof(TCHAR) ); } } // Display the process name and identifier. CString str; str.Format("Text:%s, PID : %u", szProcessName, processID ); AfxMessageBox(str); //close the process handle CloseHandle( hProcess );}
[解决办法]
- C/C++ code
GetModuleBaseName