Текущий архив: 2005.09.25;
Скачать: CL | DM;
Вниз
А можно автоматом писать версию (билд) 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 вся ветка
Текущий архив: 2005.09.25;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.042 c