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

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

Help->About и номер версии+билд??? [D5]


Victor N Golutvin ©   (2002-05-04 12:48:00) 

Можно-ли автоматически при сборке программы в Help-About вставлять номер собираемой версии и билда в виде строковых переменных, так как это возможно, скажем в VB? Или это изначально надо делать ручками и не иначе?
Заранее спасибо всем, кто подскажет.
Виктор.


Vint   (2002-05-04 20:04:00) [1]

Вот вывод:

Название организации
Права принадлежат
Версия программы
Предыдущее обновление



function CurrentFileInfo(NameApp : string) : string;
var dump: DWORD;
size: integer;
buffer: PChar;
VersionPointer, TransBuffer: PChar;
Temp: integer;
CalcLangCharSet: string;
begin
size := GetFileVersionInfoSize(PChar(NameApp), dump);
buffer := StrAlloc(size+1);
try
GetFileVersionInfo(PChar(NameApp), 0, size, buffer);
VerQueryValue(buffer, "\VarFileInfo\Translation", pointer(TransBuffer),dump);
if dump >= 4 then
begin
temp:=0;
StrLCopy(@temp, TransBuffer, 2);
CalcLangCharSet:=IntToHex(temp, 4);
StrLCopy(@temp, TransBuffer+2, 2);
CalcLangCharSet := CalcLangCharSet+IntToHex(temp, 4);
end;

VerQueryValue(buffer, pchar("\StringFileInfo\"+CalcLangCharSet+"\"+"FileVersion"), pointer(VersionPointer), dump);
if (dump > 1) then
begin
SetLength(Result, dump);
StrLCopy(Pchar(Result), VersionPointer, dump);
end
else Result := "0.0.0.0";
finally
StrDispose(Buffer);
end;
end;

procedure TSplash.FormCreate(Sender: TObject);
var
R : TRegistry;
S,D,V : String;
begin
R:=TRegistry.Create;
R.RootKey:=HKEY_LOCAL_MACHINE;
R.OpenKey("SOFTWARE\Microsoft\Windows\CurrentVersion", False);
UserName.Caption:=R.ReadString("RegisteredOwner");
Organization.Caption:=R.ReadString("RegisteredOrganization");
R.Free;

S:=ExpandFileName(Application.ExeName);
D:=DateTimeToStr(FileDateToDateTime(FileAge(S)));
V:=CurrentFileInfo(Application.ExeName);
Label5.Caption:=V;
Label6.Caption:=D;
end;

Желаю удачи


Victor N Golutvin   (2002-05-04 17:53:00) [2]

Спасибо. Сейчас посмотрю по API... Я почему-то думал, что API по открітому приложению не работает.. А ведь какая разница.. Файл-то не блокирован...


troits   (2002-05-04 16:08:00) [3]

См. API - ф-ции
GetFileVersionInfoSize,
GetFileVersionInfo,
VerQueryValue


shane54   (2002-05-04 16:04:00) [4]

В Project\Options\Version info можно прописать всю необходимую инфу, но вот как ее вытаскивать и вставлять в Help - About не знаю...


Наверх

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