Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Вниз

А можно автоматом писать версию (билд) 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.09.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.044 c
2-1123960259
AdmeraL
2005-08-13 23:10
2005.09.25
Tcaption перевести в Char?


3-1123398152
Киря
2005-08-07 11:02
2005.09.25
DBLookUpComboboxEh с двумя ключевыми полями


14-1125902965
Андрей Жук
2005-09-05 10:49
2005.09.25
У меня украли номер ICQ


1-1125670203
VadimX
2005-09-02 18:10
2005.09.25
Странное поведение IDE отладчика


1-1125409650
Anat
2005-08-30 17:47
2005.09.25
РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский