Mega Code Archive

 
Categories / Delphi / Files
 

Bir dosyanın sürüm bilgilerinin alınması[exe, dll vs ]

function GetInfo(filename:string;infotag:DWord):string; type TLangInfoBuffer = array[1..4] of SmallInt; const InfoStr: array[1..10] of string = ('CompanyName', 'FileDescription', 'FileVersion', 'InternalName', 'LegalCopyright', 'LegalTradeMarks', 'OriginalFileName', 'ProductName', 'ProductVersion', 'Comments'); var n, Len: DWORD; Buf: PChar; Value: PChar; PLangInfo: ^TLangInfoBuffer; strLangId: string; begin n := GetFileVersionInfoSize(PChar(filename), n); if n > 0 then begin Buf := AllocMem(n); GetFileVersionInfo(PChar(filename), 0, n, Buf); VerQueryValue(Buf, '\VarFileInfo\Translation', Pointer(pLangInfo), n); strLangId:=IntToHex(SmallInt(pLangInfo^[1]),4)+IntToHex(SmallInt(pLangInfo^[2]),4); if VerQueryValue(Buf, PChar('StringFileInfo\'+strLangId+'\' + InfoStr[InfoTag]), Pointer(Value), Len) then Result:=Value else result:='(yok)'; FreeMem(Buf, n); end else Result:='Sürüm bilgisi yok'; end; Burada ilk parametre olarak doyanın yolunu vermeniz gerekiyor. İkinci parametre de hangi sürüm bilgisinin okunacağı. 1: Firma adı 2: Dosya açıklaması 3: Dosya versiyonu 4: İç ad 5: Yasal koruma gibi bişey(Legal Copyright) :) 6: Tescilli isimler(mesela McDonald's ismini o firmadan başkası izinsiz kullanamaz. Veya Microsoft, Pentium(Intel'in) 7: Orjinal dosya adı 8: Ürün adı 9: Ürün versiyonu 10: Notlar/Yorumlar