Главная страница
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.025 c
4-1123059315
Гость22
2005-08-03 12:55
2005.09.25
Можна ли узнать, занят файл или нет (на чтение, запись)?


14-1125577447
Джо
2005-09-01 16:24
2005.09.25
Oberon System


2-1124354316
Гость22
2005-08-18 12:38
2005.09.25
Есть ли функции, с помощью которых можна выделить целую часть..


1-1125986905
granni
2005-09-06 10:08
2005.09.25
OpenDialog


3-1123664069
Max4
2005-08-10 12:54
2005.09.25
перемещение курсора по DBGrid