Как извлечь версию и производителя не моего EXE-файла
Можно ли и каким образом извлечь производителя и версию не из моего исполняемого файла?
все функции здесь http://msdn2.microsoft.com/en-us/library/ms674685.aspx
// KeyName = "Comment" || "ProductName" || "InternalName" ||"OriginalFilename" || "CompanyName" || "FileVersion" || ...
AnsiString VersionInfoString (AnsiString FileName, AnsiString KeyName)
{
AnsiString Info("UNKNOWN");
char
* buff(0),
* info(0);
DWORD
null,
size(GetFileVersionInfoSize(FileName.c_str(), &null));
if (size)
{
buff = new char [ size ];
if (GetFileVersionInfo(FileName.c_str(), 0, size, buff))
{
unsigned int len;
unsigned short * lang;
if (VerQueryValue(buff, "\\VarFileInfo\\Translation",
(void **)&lang, &len))
VerQueryValue(buff, (AnsiString("\\StringFileInfo\\") +
IntToHex(lang[0], 4) + IntToHex(lang[1], 4) + "\\" +
KeyName).c_str(), (void **)&info, &len);
Info = info;
}
}
delete [] buff;
return Info;
}
взято отсюда http://forum.ishodniki.ru/index.php/topic,6927.msg27607.html#msg27607