![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дата генерации exe в самом exe...
Layner © (2008-12-01 16:41:00)Здравствуйте! Как подставить в переменную дату генерации собственного exe? Как константу забивать каждый раз в pas файл не хочется. Есть ли директивы полезные в фигурных скобках {}, или без них обойтись можно?
MessageDlg(Этот exe создали: 1 декабря 2008г.', mtInformation, [mbOk], 0);
Хотелось бы вот усовершенствовать данный код ;)
Заранее благодарю!
blackman (2008-12-02 12:31: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;
...
s:=ExpandFileName(Application.ExeName);
s:=DateTimeToStr(FileDateToDateTime(FileAge(s)));
s:=s+' # '+CurrentFileInfo(Application.ExeName);
Конечно это не контроль версий, а дата последней компиляции с версией которую ставим ручками в проекте
Плохиш (2008-12-02 10:16:00) [2]
> Германн © (02.12.08 01:19) [5]
>
> Пока нет системы контроля версий - всё это "мышиная возня"!
Если разруха в головах, то никакая система контроля версий не поможет.
Slym (2008-12-02 05:39:00) [3]Layner © (01.12.08 18:07) [2]
Автоматом
Если нажать Билд проекту то сделает +1...
если Компил то ничего не меняет
Eraser (2008-12-02 04:19:00) [4]> [0] Layner © (01.12.08 16:41)
Как то это можно автоматизировать через API IDE, только как не помню, помню, что Джо выкладывал тут пример.
Германн (2008-12-02 01:19:00) [5]Пока нет системыконтроля версий - всё это "мышиная возня"!
Ни номер билда, ни дата/время создания файла ничем не помогут. Только запутают нафиг до полного непонимания!
Плавали, знаем. :)
Layner (2008-12-01 18:25:00) [6]Леонид, спасибо, cmd в расчет не брал, идею понял, как вариант подойдет.
Leonid Troyanovsky (2008-12-01 18:17:00) [7]
> Layner © (01.12.08 18:07) [2]
> определенного поля Version Info. (датой).
Например, сделай себе cmd файл.
Он обновит информацию о времени, скажем, в inc файле,
и скомпилирует новую версию (dcc32.exe).
--
Regards, LVT.
Layner (2008-12-01 18:07:00) [8]а информация как в версию пишется? Автоматом? Мне надо автозаполнение определенного поля Version Info. (датой).
Сергей М. (2008-12-01 16:49:00) [9]Зачем это может понадобиться ?
Неужели не достаточно инф-ции о версии ?