Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];

Вниз

прочитать версию о файле   Найти похожие ветки 

 
КомофОнСамый   (2004-01-28 20:04) [0]

где может быть ошибка??

type
{$M+}
//заставляет Delphi включать в код RTTI-информацию для
//перечислимых типов. В основном допускает работу с перечислимыми
//типами как со строками с помощью GetEnumName
TVersionType = (vtCompanyName,
vtFileDescription,
vtFileVersion,
vtInternalName,
vtLegalCopyright,
vtLegalTradeMark,
vtOriginalFileName,
vtProductName,
vtProductVersion,
vtComments);
{$M-}
function GetVersionInfo(VersionType: TVersionType):string;
var
FVersionInfo: array[0..Ord(high(TVersionType))] of string;
sAppName, sVersionType: string;
iAppSize, iLenOfValue, i: Cardinal;
pcBuf, pcValue: PChar;
begin
sAppName:=Application.ExeName;
iAppSize:=GetFileVersionInfoSize(PChar(sAppName), iAppSize);
if(iAppSize>0)then
begin
pcBuf:=AllocMem(iAppSize);
GetFileVersionInfo(PChar(sAppName), 0, iAppSize, pcBuf);
for i:=0 to Ord(High(TVersionType)) do
begin
sVersionType := GetEnumName(TypeInfo(TVersionType), i);
sVersionType := Copy(sVersionType, 3, length(sVersionType));
if(VerQueryValue(pcBuf,
PChar("StringFileInfo\040904E4\"+sVersionType),
Pointer(pcValue),
iLenOfValue))then FVersionInfo[i]:=pcValue;
end;
FreeMem(pcBuf, iAppSize);
end;
result := FVersionInfo[ord(VersionType)];
end;



 
baataar   (2004-01-29 11:43) [1]

что никто не использует версионность? мож у кого есть другой пример??


 
icWasya   (2004-01-29 12:05) [2]

if(VerQueryValue(pcBuf,
PChar(" \StringFileInfo\040904E4\"+sVersionType),
Pointer(pcValue),
iLenOfValue))then FVersionInfo[i]:=pcValue;


 
baataar   (2004-01-29 12:35) [3]

не помогает :(
а у когонить работает?


 
Erik   (2004-01-29 12:56) [4]

У меня все прекрасно уже год работает. Ты в самом проекте галочку поставил? И заполнил инвормацию о версии?
Я так делал:
function GetCurrentVersion(const FileName: string): Int64;
var
Info: Pointer;
Temp,
InfoSize,
FileInfoSize: DWORD;
FileInfo: PVSFixedFileInfo;
CurFile: string;
begin
Result := 0;
CurFile := LowerCase(FileName);
InfoSize := GetFileVersionInfoSize(PChar(CurFile), Temp);
if InfoSize > 0 then
begin
GetMem(Info, InfoSize);
FileInfoSize := SizeOf(FileInfo^);
try
GetFileVersionInfo(PChar(CurFile), 0, InfoSize, Info);
VerQueryValue(Info, "\", Pointer(FileInfo), FileInfoSize);
with FileInfo^ do
begin
Result := dwFileVersionMS;
Result := Result shl 32;
Result := Result + dwFileVersionLS;
end;
finally
FreeMem(Info, InfoSize);
end;
end;
end;


 
baataar   (2004-01-29 13:28) [5]

младшую версию нормально узнал (dwFileVersionLS). а вот старшую нет.

посмотрел FileInfo^ - там ничего похожева нету. а сдвиг дал вообще цифирю очень большую



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.02.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
7-29620
Иван
2003-11-27 10:51
2004.02.10
Мобильный телефон


3-29213
nomad
2004-01-19 18:31
2004.02.10
процедура в Oracle


14-29614
asdqwer
2004-01-16 07:11
2004.02.10
Ещё HTML


9-29192
McSimm2
2003-07-29 10:40
2004.02.10
Simple Miner


8-29485
Denver_99
2003-10-08 21:42
2004.02.10
Разработка ценника





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