{
DWORD dwVerInfoSize=0;
AnsiString strFileName=Application->ExeName;
dwVerInfoSize=GetFileVersionInfoSize(strFileName.c_str(),&dwVerInfoSize);
char *vBuffer;
if(dwVerInfoSize>0)
{
vBuffer=new char[dwVerInfoSize];
memset(vBuffer,0,dwVerInfoSize);
if(GetFileVersionInfo(strFileName.c_str(),0,dwVerInfoSize,vBuffer))
{
LPVOID lpBuffer = NULL;
UINT uLen = 0;
LPDWORD lang;
UINT len,i,j;
char buffer[4096];
char strLanguage[200];
memset(strLanguage,0,200);
if(VerQueryValue(vBuffer,"\\VarFileInfo\\Translation",(void**)&lang,&uLen))
{
wsprintf(strLanguage,"%04x%04x\\",LOWORD(*lang), HIWORD(*lang));
}
AnsiString strTmp=strLanguage;
strTmp="\\StringFileInfo\\"+strTmp;
//产品名称
AnsiString str=strTmp+"ProductName";
memset(strLanguage,0,200);
if(VerQueryValue(vBuffer,str.c_str(),(LPVOID*)&lpBuffer,&uLen))
{
memcpy(strLanguage,lpBuffer,uLen);
this->Text=strLanguage;
}
//产品版本
str=strTmp+"ProductVersion";
memset(strLanguage,0,200);
if(VerQueryValue(vBuffer,str.c_str(),(LPVOID*)&lpBuffer,&uLen))
{
memcpy(strLanguage,lpBuffer,uLen);
this->Text=this->Text + " - " + strLanguage;
}
//合法版权
str=strTmp+"LegalCopyright";
memset(strLanguage,0,200);
if(VerQueryValue(vBuffer,str.c_str(),(LPVOID*)&lpBuffer,&uLen))
{
memcpy(strLanguage,lpBuffer,uLen);
this->StatusBar1->Panels->Items[0]->Text = strLanguage;
}
//出品公司
str=strTmp+"CompanyName";
memset(strLanguage,0,200);
if(VerQueryValue(vBuffer,str.c_str(),(LPVOID*)&lpBuffer,&uLen))
{
memcpy(strLanguage,lpBuffer,uLen);
this->StatusBar1->Panels->Items[1]->Text= strLanguage ;
}
}
delete vBuffer;
}
}