Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

как работать с VersionInfo?   Найти похожие ветки 

 
lucky4me ©   (2004-02-17 08:46) [0]

Пример из help"а Delphi6 не работает. что здесь не так?


procedure TForm1.Button1Click(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);
 if n > 0 then
 begin
   Buf := AllocMem(n);
   Memo1.Lines.Add("VersionInfoSize = " + IntToStr(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);
   FreeMem(Buf, n);
 end
 else
   Memo1.Lines.Add("No version information found");
end;


 
Dimka Maslov ©   (2004-02-17 09:23) [1]

Язык не обязательно должен быть U.S. English (040904e4) но и Русский (041904e3), что устанавливается Delphi. Чтобы получить инофрмацию не зависимо от языка:

function GetStringFileInfo(const FileName: string; const Key: string): string;
var
Translation: PLongInt;
W: PWord absolute Translation;
Buffer, Value: Pointer;
Size, Len, Handle: DWORD;
SFI, Lang: string;
P: PChar;
begin
P:=PChar(FileName);
Size:=GetFileVersionInfoSize(P, Handle);
if Size<>0 then begin
 GetMem(Buffer, Size);
 try
  GetFileVersionInfo(P, Handle, Size, Buffer);
  VerQueryValue(Buffer, "\VarFileInfo\Translation", Pointer(Translation), Len);
  Lang := IntToHex(Translation^ and $FFFF, 4) + IntToHex(Translation^ shr 16, 4);
  SFI:=Format("\StringFileInfo\%s\%s", [Lang, Key]);
  VerQueryValue(Buffer, PChar(SFI), Value, Len);
  Result:=PChar(Value);
 finally
  FreeMem(Buffer, Size);
 end;
end else Result:="";
end;


 
lucky4me ©   (2004-02-17 09:36) [2]

премного благодарствую



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

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
9-1066728269
Гарри Поттер
2003-10-21 13:24
2004.04.25
"OpenGl Графика в проектах Дельфи" М.Краснов


1-1081685178
Феликс
2004-04-11 16:06
2004.04.25
Вопрос с картинкой про траекторию.


7-1077469102
Vlad25
2004-02-22 19:58
2004.04.25
Как получить буквы cd-приводов?


1-1081615209
hgd
2004-04-10 20:40
2004.04.25
Вопрос про StrToInt


11-1064430678
miek
2003-09-24 23:11
2004.04.25
Кладову: утечка памяти в KOL