Article View: borland.public.cppbuilder.nativeapi
Article #7469Re: how to know the version of a executable file
From: Colin B Maharaj
Date: Tue, 01 Feb 2005 21:58
Date: Tue, 01 Feb 2005 21:58
48 lines
2320 bytes
2320 bytes
>
>>how can I know (using code) the version of one executable file?
>
Try this works for me.....
AnsiString BuildString(System::AnsiString Fn)
{
DWORD Handle;
DWORD Size;
bool error = false;
void *pBuffer;
AnsiString ret;
Size = GetFileVersionInfoSize(Fn.c_str(), &Handle);
if (Size)
{
pBuffer = new char [Size];
if (GetFileVersionInfo(Fn.c_str(),Handle, Size,pBuffer))
{
struct TRANSLATION { WORD langID; WORD charset; } translation;
VS_FIXEDFILEINFO * lpvi;
UINT iLen;
int n = VerQueryValue(pBuffer, "\\VarFileInfo\\Translation",
(void **)&lpvi, &iLen);
if (n != 0)
{
translation = *(TRANSLATION*)lpvi;
char szName[512];
wsprintf(szName, "\\StringFileInfo\\%04x%04x\\FileVersion",
translation.langID, translation.charset);
unsigned int buflen;
char *b;
if (VerQueryValue((LPVOID)pBuffer, szName, (void **)&b,&buflen))
{
ret = (AnsiString) b;
}
}
else error = true;
}
else error = true;
delete[] pBuffer;
}
else error = true;
if (error) ret = "N/A";
return ret;
}
Technical Details
Message-ID:
<41fffb6c$2@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mailReferences:
<41fcaf33@newsgroups.borland.com> <41fce224@newsgroups.borland.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 10cc67,ef3e8d83c1375a38 X-Google-Attributes: gid10cc67,public X-Google-Language: ENGLISH,ASCII-7-bit Date: Tue, 01 Feb 2005 17:58:13 -0400 From: Colin B Maharaj <noreply@myhost.com> User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8a4) Gecko/20040927 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: borland.public.cppbuilder.nativeapi Subject: Re: how to know the version of a executable file References: <41fcaf33@newsgroups.borland.com> <41fce224@newsgroups.borland.com> In-Reply-To: <41fce224@newsgroups.borland.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit NNTP-Posting-Host: 200.108.11.128 Message-ID: <41fffb6c$2@newsgroups.borland.com> X-Trace: newsgroups.borland.com 1107295084 200.108.11.128 (1 Feb 2005 13:58:04 -0800) Lines: 49 Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!proxad.net!news.tele.dk!news.tele.dk!small.news.tele.dk!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail