Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "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.091 c
1-97619
SkyRanger
2003-06-19 14:08
2003.06.30
Access Violation и все тут, млин....


3-97517
Hose
2003-06-05 10:35
2003.06.30
Позиционирование на вновь вставленную запись.


7-97902
XM-AD
2003-04-21 17:14
2003.06.30
Запис на хард


4-97933
Bonial
2003-04-20 02:41
2003.06.30
Как запретить доступ к папке?


3-97501
Igor Mish
2003-06-05 10:14
2003.06.30
Шрифты в ShowMessage





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский