Главная страница
    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.007 c
1-97590
Helium
2003-06-19 03:52
2003.06.30
Интерфейс Win XP (Luna)


3-97504
DBDev
2003-06-05 11:31
2003.06.30
TADOQuery выдает ошибку:


4-97937
DelBoy
2003-04-25 22:33
2003.06.30
Пересылка события нажатия клавиши


14-97865
romychk
2003-06-13 10:14
2003.06.30
Восстановление Excel файлов


1-97713
DiXi123
2003-06-18 11:56
2003.06.30
Открытие файла перетаскиванием





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский