Форум: "WinAPI";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
ВнизКак узнать версию исполняемого файла? Найти похожие ветки
← →
3223(jab) (2003-04-29 12:34) [0]Вот маленькая загвоздочка! Не поможете узнать версию файла?
Вроде должно работать, но с VerQueryValue() не могу разобраться, что и как!?
procedure TForm1.Button1Click(Sender: TObject);
var
lptstrFilename:LPTSTR;
lpdwHandle,cchver:DWORD;
pver:PChar;
br:Boolean;
pbuf:Pointer;
uLen:PChar;
begin
if OpenDialog1.Execute then begin
lptstrFilename:=PChar(OpenDialog1.FileName);
cchver:=GetFileVersionInfoSize(Pointer(lptstrFilename),lpdwHandle);
GetMem(pver,cchver);
br:=GetFileVersionInfo(Pointer(lptstrFilename),lpdwHandle,cchver,Pointer(pver));
// А тут пошли проблемы!!!
GetMem(pbuf,cchver);
GetMem(uLen,cchver);
if br then br:=VerQueryValue(pver,"\\",pbuf,uLen);
if br then Edit1.Text:="T";
FreeMem(pver,cchver);
FreeMem(pbuf,cchver);
FreeMem(uLen,cchver);
//
end;
end;
← →
Игорь Шевченко (2003-04-29 12:38) [1]
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;
← →
3223(jab) (2003-04-29 12:46) [2]:)
Харош!
ок
Спасибо!
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.06.30;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c