最新版本的Psapi已经有了GetProcessImageFileName()和QueryFullProcessImageName(),
老版本PSapi没有这个接口,可以用以下代码完成相同的功能。
BOOL GetProcessName(CString &strProcessName) { HANDLE hProcess = GetCurrentProcess(); HMODULE aryModule[1024]; DWORD ncbSize; BOOL bSuccess = EnumProcessModules(hProcess, aryModule, 1024*sizeof(HMODULE), &ncbSize); if(!bSuccess) return FALSE; TCHAR szModuleName[1024]; DWORD dwLen = GetModuleFileName(aryModule[0], szModuleName, 1024); if(0 != dwLen) { CString strImagePath = szModuleName; int nRight = strImagePath.GetLength()-strImagePath.ReverseFind('\\')-1; strProcessName = strImagePath.Right(nRight); return TRUE; } return FALSE; }