1

谁能分享一个想法如何从进程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。

4

0 回答 0