Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Внизкак у себя выдрать свойства EXE ? Найти похожие ветки
← →
ДжекиМайер (2007-03-07 19:58) [0]интересует версия программы в string загрузить
← →
Германн © (2007-03-07 20:08) [1]Надоело уже повторять. Последний раз повторяю:
1.GetFileVersionInfoSize
2.GetFileVersionInfo
3.VerQueryValue
← →
RASkov (2007-03-07 20:24) [2]> [0] ДжекиМайер (07.03.07 19:58)
Не мое:function CurrentFileInfo(NameApp: string): string;
var
dump: DWORD;
size: integer;
buffer: PChar;
VersionPointer, TransBuffer: PChar;
Temp: integer;
CalcLangCharSet: string;
begin
size := GetFileVersionInfoSize(PChar(NameApp), dump);
buffer := StrAlloc(size+1);
try
GetFileVersionInfo(PChar(NameApp), 0, size, buffer);
VerQueryValue(buffer, "\VarFileInfo\Translation", pointer(TransBuffer),
dump);
if dump >= 4 then
begin
temp:=0;
StrLCopy(@temp, TransBuffer, 2);
CalcLangCharSet:=IntToHex(temp, 4);
StrLCopy(@temp, TransBuffer+2, 2);
CalcLangCharSet := CalcLangCharSet+IntToHex(temp, 4);
end;
VerQueryValue(buffer, pchar("\StringFileInfo\"+CalcLangCharSet+
"\"+"FileVersion"), pointer(VersionPointer), dump);
if (dump > 1) then
begin
SetLength(Result, dump);
StrLCopy(Pchar(Result), VersionPointer, dump);
end
else
Result := "0.0.0.0";
finally
StrDispose(Buffer);
end;
end;
← →
DVM © (2007-03-07 20:37) [3]function GetFullFileVersion : string;
Var j,w : Cardinal;
s : shortstring;
buf : pointer;
buf2 : pointer;
q : DWord;
vsinfo: ^VS_FIXEDFILEINFO;
mVer,
lVer,
rVer,
bVer,
flag : DWord;
begin
s := ParamStr(0) + #0;
j := GetFileVersionInfoSize(@s[1],w);
if j = 0 then Exit;
buf := Ptr(GlobalAlloc(GMEM_FIXED,j));
GetFileVersionInfo(@s[1], 0, j, buf);
VerQueryValue(buf, "\", buf2, q);
vsinfo := buf2;
mVer := vsInfo^.dwProductVersionMS div $FFFF;
lVer := vsInfo^.dwProductVersionMS mod $10000;
rVer := vsInfo^.dwProductVersionLS div $FFFF;
bVer := vsInfo^.dwProductVersionLS mod $10000;
flag := vsInfo^.dwFileFlags;
s := IntToStr(mVer) + "." +
IntToStr(lVer) + "." +
IntToStr(rVer) + "." +
IntToStr(bVer);
if (flag and VS_FF_DEBUG) > 0 then s := s + " debug ";
if (flag and VS_FF_PRERELEASE) > 0 then s := s + " prerelease ";
if (flag and VS_FF_PRIVATEBUILD) > 0 then s := s + " private ";
if (flag and VS_FF_SPECIALBUILD) > 0 then s := s + " special ";
Result := s;
GlobalFree(Cardinal(buf));
end;
← →
RASkov (2007-03-07 20:48) [4]Или найти модуль RxVerInf; входит в RxLib.
Много чего еще можно вытащить из "Версии программы".
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c