谁能分享一个想法如何从进程ID中获取文件的原始文件名?
我尝试了功能:
bool getProcessOriginalFilename(LPSTR lpszFilePath)
{
DWORD dwDummy;
DWORD dwFVISize = GetFileVersionInfoSize( lpszFilePath , &dwDummy );
LPBYTE lpVersionInfo = new BYTE[dwFVISize];
GetFileVersionInfo( lpszFilePath , 0 , dwFVISize , lpVersionInfo );
UINT uLen;
VS_FIXEDFILEINFO *lpFfi;
VerQueryValue( lpVersionInfo , _T("\\") , (LPVOID *)&lpFfi , &uLen );
printf( "Original filename: %x\n" , lpFfi->OriginalFilename);
delete [] lpVersionInfo;
return true;
}
但有一个错误lpFfi->OriginalFilename
:
struct tagVS_FIXEDFILEINFO' has no member named 'OriginalFilename'
我也不知道如何从 processID 获取文件路径,因为 Tlhelp32 条目仅返回当前文件名而没有路径和进程 ID。