Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как узнать из файла ресурсов верссию проекта? [D6, WinXP]


^Sanya ©   (2002-08-08 17:36:00) 

Ведь она там хранится...
Заранее благодарен.


Poirot   (2002-08-09 01:27:00) [1]


> Юрий Зотов © (08.08.02 23:24)
> > ресурс включается в конечный комп. файл проекта - зачем
> же
> > через ресурс получать версию
>
> Как раз оттуда ее и получают - из ресурса в теле exe/dll.

Я предполагал, что под ресурсом подр. RES(RC)... т.е. оттедльный файл....


^Sanya   (2002-08-09 00:36:00) [2]

Нашёл выход:

procedure GetFileVersion(FileName: string; var Major1, Major2,
Minor1, Minor2: Integer);
var
Info: Pointer;
InfoSize: DWORD;
FileInfo: PVSFixedFileInfo;
FileInfoSize: DWORD;
Tmp: DWORD;
begin
InfoSize := GetFileVersionInfoSize(PChar(FileName), Tmp);
if InfoSize = 0 then
raise Exception.Create("Can""t get file version information for "
+ FileName);
GetMem(Info, InfoSize);
try
GetFileVersionInfo(PChar(FileName), 0, InfoSize, Info);
VerQueryValue(Info, "\", Pointer(FileInfo), FileInfoSize);
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;


Юрий Зотов   (2002-08-09 00:14:00) [3]

> Кстати, а через GetFileVersionInfo не получится?
Получится. Насколько я помню, GetComCtlVersion через нее и работает.


> А более простого решения проблемы не существует?
Скопировать к себе код GetComCtlVersion и подправить пару строк - куда же еще проще-то?


^Sanya   (2002-08-09 00:02:00) [4]

Кстати, а через GetFileVersionInfo не получится?


^Sanya   (2002-08-09 00:00:00) [5]

> При том, что надо взять GetComCtlVersion за образец и написать свою такую же функцию.

А более простого решения проблемы не существует?


Юрий Зотов   (2002-08-08 23:24:00) [6]

> ресурс включается в конечный комп. файл проекта - зачем же
> через ресурс получать версию

Как раз оттуда ее и получают - из ресурса в теле exe/dll.


> Причём тут версия проекта(или приложения, если угодно)?

При том, что надо взять GetComCtlVersion за образец и написать свою такую же функцию.


^Sanya   (2002-08-08 23:01:00) [7]

->Poirot
Позволю себе цитату из классики:
GetComCtlVersion function -"indicates which version of ComCtl32.dll is installed." Причём тут версия проекта(или приложения, если угодно) ?


TTCustomDelphiMaster   (2002-08-08 21:48:00) [8]

^Sanya © (08.08.02 17:36)
Смотри в ComCtrls функцию
function GetComCtlVersion: Integer;


Poirot   (2002-08-08 21:48:00) [9]

посмотри здесь в ФАках... там есть что-то о получении версии...
Кстати получить версию из ресурса - это интересно.... Вы посмотрите напр через Resource WorkShop что собой представляет эта запись....
Кстати, ресурс включается в конечный комп. файл проекта - зачем же через ресурс получать версию???


^Sanya   (2002-08-08 20:56:00) [10]

Прошу прощения, а что есть за чудо такое - "RX"?
Я искал "TVersionInfo" как текст в папочке "Source"...увы, не нашёл :(
Помогите, пожалуйста. Заранее благодарю.


Skier   (2002-08-08 17:39:00) [11]

>^Sanya
В RX есть класс TVersionInfo


Наверх

Титульная страница Поиск, карта сайта Написать письмо