Win7的Psapi.dll已提供了GetProcessImageFileName()和QueryFullProcessImageName(),
XP的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;
}