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

Вниз

Как узнать текущий номер билда?   Найти похожие ветки 

 
kaif ©   (2004-04-20 05:23) [0]

Имеется программа. Хочется, чтобы она номер своего билда в AboutBox-е высвечивала. Есть какая-нибудь функция, чтобы узнать номер билда? Или хотя бы кто-нибудь знает, как обратиться к нему, как к ресурсу (знает имя ресурса)? Предполагается, что в свойствах проекта установлено "включать информацию о версии в EXE-файл".


 
kaif ©   (2004-04-20 05:23) [0]

Имеется программа. Хочется, чтобы она номер своего билда в AboutBox-е высвечивала. Есть какая-нибудь функция, чтобы узнать номер билда? Или хотя бы кто-нибудь знает, как обратиться к нему, как к ресурсу (знает имя ресурса)? Предполагается, что в свойствах проекта установлено "включать информацию о версии в EXE-файл".


 
Danilka ©   (2004-04-20 08:50) [1]

Если не ошибаюсь, через ВинАПИ процедуру: GetFileVersionInfo, а дальше - анализировать то, что она вернет.


 
Danilka ©   (2004-04-20 08:50) [1]

Если не ошибаюсь, через ВинАПИ процедуру: GetFileVersionInfo, а дальше - анализировать то, что она вернет.


 
Игорь Шевченко ©   (2004-04-20 10:57) [2]

 procedure GetFileVersion(FileName: string; var Major1, Major2,
                Minor1, Minor2: Integer);
 { Helper function to get the actual file version information }
 var
   Info: Pointer;
   InfoSize: DWORD;
   FileInfo: PVSFixedFileInfo;
   FileInfoSize: DWORD;
   Tmp: DWORD;
 begin
   // Get the size of the FileVersionInformatioin
   InfoSize := GetFileVersionInfoSize(PChar(FileName), 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 "
                    + FileName);
   // Allocate memory for the file version information
   GetMem(Info, InfoSize);
   try
     // Get the information
     GetFileVersionInfo(PChar(FileName), 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;


var
 VersionMajor: Integer;
 VersionMinor: Integer;
 Release, BuildNumber: Integer;
begin
...
   GetFileVersion(ParamStr(0), VersionMajor, VersionMinor, Release, BuildNumber);
...


 
Игорь Шевченко ©   (2004-04-20 10:57) [2]

 procedure GetFileVersion(FileName: string; var Major1, Major2,
                Minor1, Minor2: Integer);
 { Helper function to get the actual file version information }
 var
   Info: Pointer;
   InfoSize: DWORD;
   FileInfo: PVSFixedFileInfo;
   FileInfoSize: DWORD;
   Tmp: DWORD;
 begin
   // Get the size of the FileVersionInformatioin
   InfoSize := GetFileVersionInfoSize(PChar(FileName), 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 "
                    + FileName);
   // Allocate memory for the file version information
   GetMem(Info, InfoSize);
   try
     // Get the information
     GetFileVersionInfo(PChar(FileName), 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;


var
 VersionMajor: Integer;
 VersionMinor: Integer;
 Release, BuildNumber: Integer;
begin
...
   GetFileVersion(ParamStr(0), VersionMajor, VersionMinor, Release, BuildNumber);
...


 
kaif ©   (2004-04-22 14:37) [3]

2 Игорь Шевченко ©   (20.04.04 10:57) [2]
Спасибо. Хотя уже сам дошел, копая MS SDK, а потом - модуль Windows. :)
Но все равно спасибо!
Ваш код изящнее. Я определил лишнюю структуру из 2 слов, чтобы не делать сдвиги.


 
kaif ©   (2004-04-22 14:37) [3]

2 Игорь Шевченко ©   (20.04.04 10:57) [2]
Спасибо. Хотя уже сам дошел, копая MS SDK, а потом - модуль Windows. :)
Но все равно спасибо!
Ваш код изящнее. Я определил лишнюю структуру из 2 слов, чтобы не делать сдвиги.



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

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
14-1081789281
Инкогнито
2004-04-12 21:01
2004.05.09
Азбука Морзе!


8-1075965594
mastervel
2004-02-05 10:19
2004.05.09
DirectShow и CDDA


1-1082913748
mikeflat
2004-04-25 21:22
2004.05.09
свойство типа массив


4-1079535051
Случайно забежавший
2004-03-17 17:50
2004.05.09
Загрузка и показ иконки


8-1076628124
Builder
2004-02-13 02:22
2004.05.09
MediaPlayer





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский