Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
ВнизVersion Information Найти похожие ветки
← →
ppcat (2002-03-24 17:52) [0]Не могу прочитать информацию о версии файла, хотя Windows Shell - может. Вот пример скопированный из хелпа.
procedure TfmMain.Button2Click(Sender: TObject);
const
InfoNum = 10;
InfoStr: array[1..InfoNum] of string = ("CompanyName", "FileDescription", "FileVersion", "InternalName", "LegalCopyright", "LegalTradeMarks", "OriginalFileName", "ProductName", "ProductVersion", "Comments");
var
S: string;
n, Len, i: DWORD;
Buf: PChar;
Value: PChar;
begin
S := Application.ExeName;
n := GetFileVersionInfoSize(PChar(S), n);
Memo1.Lines.Add("VersionInfoSize = " + IntToStr(n));
if n > 0 then
begin
Buf := AllocMem(n);
GetFileVersionInfo(PChar(S), 0, n, Buf);
for i := 1 to InfoNum do
if VerQueryValue(Buf, PChar("StringFileInfo\040904E4\" + InfoStr[i]), Pointer(Value), Len) then
Memo1.Lines.Add(InfoStr[i] + " = " + Value)
else
Memo1.Lines.Add(InfoStr[i] + " = none");
FreeMem(Buf, n);
end
else
Memo1.Lines.Add("No version information found");
end;
???
← →
MBo (2002-03-25 08:00) [1]http://dims.gpsm.ru/files/dimpas.htm
← →
ghost_by (2002-03-25 08:17) [2]
function GetFileVersion(const FileName:string):string;
var
InfoSize,Wnd:DWORD;
VerBuf:Pointer;
FI:PVSFixedFileInfo;
VerSize:DWORD;
begin
Result:="";
InfoSize:=GetFileVersionInfoSize(PChar(FileName),Wnd);
if InfoSize<>0 then begin
GetMem(VerBuf,InfoSize);
try
if GetFileVersionInfo(PChar(FileName),Wnd,InfoSize,VerBuf) then
if VerQueryValue(VerBuf,"\",Pointer(FI),VerSize) then
Result:=IntToStr(FI.dwFileVersionMS shr 16)+"."+
IntToStr(FI.dwFileVersionMS and $FFFF)+"."+
IntToStr(FI.dwFileVersionLS shr 16)+"."+
IntToStr(FI.dwFileVersionLS and $FFFF);
finally
FreeMem(VerBuf);
end;
end;
end;
← →
Юрий Федоров (2002-03-29 19:24) [3]Я понял,в чем дело :
040904E4 - это английский, для русского - 041904E3
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.007 c