Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.25;
Скачать: CL | DM;

Вниз

А можно автоматом писать версию (билд) exe-шника в label ?   Найти похожие ветки 

 
Гомункул ©   (2005-08-01 14:50) [0]

А можно автоматом писать версию (билд) exe-шника в label одной из форм - в моем случае форма About?


 
Вася Пупкин ©   (2005-08-01 14:51) [1]

Можно


 
Гаврила ©   (2005-08-01 14:53) [2]

Можно.
См. GetFileVersionInfo, VerQueryValue


 
афвуд   (2005-08-01 14:55) [3]


String __fastcall TMainForm::GetProgramVersion()
{
       String s="";
       DWORD h;
       DWORD Size=GetFileVersionInfoSize(Application->ExeName.c_str(), &h);
       if(Size==0) goto end;
       char *buf;
       buf=(char*)GlobalAlloc(GMEM_FIXED, Size);
       if(GetFileVersionInfo(Application->ExeName.c_str(),h,Size,buf)!=0)
       {
               char *ValueBuf;
               UINT Len;
                VerQueryValue(buf, "\\VarFileInfo\\Translation", &(void*)ValueBuf, &Len);
                       AnsiString CharSet=IntToHex((int)MAKELONG(*(int*)(ValueBuf+2), *(int*)ValueBuf), 8);

                       if(VerQueryValue(buf,AnsiString("\\StringFileInfo\\"+CharSet+"\\FileVersion").c_str(),&(void*)ValueBuf,&Len)!=0)
                       s=ValueBuf;
       }
       GlobalFree(buf);
       end:
       return s;
}


Код на С++ Builder. Сам переведёшь. А вообще надо поискать самому сначала прежде чем Спрашивать.


 
Admido   (2005-08-01 15:03) [4]

Полностью согласен с "афвуд (01.08.05 14:55) [3]".

procedure TForm1_main.FileVersionInfo(var Major1, Major2, Minor1, Minor2: Integer);
var
 Info: Pointer;
 InfoSize: DWORD;
 FileInfo: PVSFixedFileInfo;
 FileInfoSize: DWORD;
 Tmp: DWORD;
begin
 // Get the size of the FileVersionInformatioin
 InfoSize := GetFileVersionInfoSize(PChar(Application.ExeName), Tmp);
 // If InfoSize = 0, then the file may not exist, or
 // it may not have file version information in it.

 if InfoSize = 0 then
   raise Exception.Create("Can""t get file version information for "
         + Application.ExeName);

 // Allocate memory for the file version information
 GetMem(Info, InfoSize);
 try
   // Get the informationM
   GetFileVersionInfo(PChar(Application.ExeName), 0, InfoSize, Info);
   // Query the information for the version
   VerQueryValue(Info, "\", Pointer(FileInfo), FileInfoSize);
   // Now fill in the version information}
   Major1 := FileInfo.dwFileVersionMS shr 16;
   Major2 := FileInfo.dwFileVersionMS and $FFFF;
   Minor1 := FileInfo.dwFileVersionLS shr 16;
   Minor2 := FileInfo.dwFileVersionLS and $FFFF;
 finally
   FreeMem(Info, FileInfoSize);
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2005.09.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.051 c
3-1123651386
serjufa
2005-08-10 09:23
2005.09.25
вылезает ошибка при выполнении SELECT


9-1117187265
Архитектор
2005-05-27 13:47
2005.09.25
[GlScene] SkyDome


2-1124164683
КотаПёс
2005-08-16 07:58
2005.09.25
Запись текста в файл


2-1124280481
Novice
2005-08-17 16:08
2005.09.25
про классы


3-1123963760
redlord
2005-08-14 00:09
2005.09.25
не соответствие типа поля и данных (Asdatetime)