Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Версия файла в TLabel


Автор: DCamer 22.7.2010, 18:08
Как вывести версию файла в лейбле? В C++ Buider 2010.

Автор: NightElf 23.7.2010, 08:02
DCamer
Цитата

DCamer Как вывести версию файла в лейбле? В C++ Buider 2010.

Какого файла?

Автор: DCamer 23.7.2010, 12:23
NightElf, Исполняемого файла самого приложения в котором будет выводится версия.

Автор: mrbrooks 23.7.2010, 12:38
GetFileVersionInfo или GetFileVersionInfoEx

Автор: DCamer 23.7.2010, 12:48
Цитата(mrbrooks @  23.7.2010,  13:38 Найти цитируемый пост)
GetFileVersionInfo или GetFileVersionInfoEx 

Это я знаю, но при открытие окна с TLabel, вылетает ошибка и вместо версии написано название TLabel'а.

Автор: Dem_max 23.7.2010, 13:05
Значит чето не правильно делаешь

Автор: DCamer 23.7.2010, 13:16
Dem_max, Только что пробовал http://www.interface.ru/home.asp?artId=9405, тоже ошибка вылетает.

Автор: Dem_max 23.7.2010, 13:27
по ссылке какой то код мутный, смесь чего то с чем то. 

Автор: _Dimon_ 23.7.2010, 16:44
Код

UnicodeString __fastcall VersionInfo(UnicodeString Value)
{
 DWORD h;
 DWORD Size;
 HGLOBAL buf;
 wchar_t* ValueBuf;
 UnicodeString CharSet;
 UnicodeString strValue;

 try
 {
  Size = GetFileVersionInfoSizeW(Application->ExeName.w_str(), &h);
  if(Size>0)
   {
    buf=GlobalAlloc(GMEM_FIXED, Size);
    GetFileVersionInfoW(Application->ExeName.w_str(),h,Size,buf);
    VerQueryValueW(buf, UnicodeString(L"\\VarFileInfo\\Translation").w_str(), &(void*)ValueBuf, NULL);
    CharSet=IntToHex((int)MAKELONG(HIWORD(*(int*)(ValueBuf)),LOWORD(*(int*)ValueBuf)), 8);
    VerQueryValueW(buf,UnicodeString(L"\\StringFileInfo\\"+CharSet+L"\\"+Value).w_str(),&(void*)ValueBuf,NULL);
    strValue = UnicodeString(ValueBuf);
   }
 }
 __finally
 {
   if (Size>0) GlobalFree(buf);
 }

 return strValue;
}




Код

 Label1->Caption = VersionInfo(L"FileVersion");        // Версия файла
 Label2->Caption = VersionInfo(L"LegalCopyright"); // Авторское право
 Label3->Caption = VersionInfo(L"Comments");        // Коментарий


Короче суть понятна надеюсь  



P.S. Чуточку поправил

Автор: DCamer 1.8.2010, 20:24
_Dimon_, спасибо. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)