プロセス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'
また、プロセスIDからファイルパスを取得する方法もわかりません.Tlhelp32エントリは、パスとプロセスIDなしで現在のファイル名のみを返します。