Вниз
Скачать: CL | DM;

как из exe фаила вытащить мета инфо   Найти похожие ветки 

← →
dracula ©   (2004-08-03 18:16) [0]

как из exe фаила вытащить мета инфо - если она там есть.


← →
Sergey Kaminski ©   (2004-08-03 18:19) [1]

Ее там нет. Если под этим не имеется в виду что-то другое.


← →
Anatoly Podgoretsky ©   (2004-08-03 18:36) [2]

Она там есть, сиотри форматы исполнимых файлов


← →
dracula ©   (2004-08-03 18:37) [3]

Она там есть, потомучто под этим имеется в виду что-то другое.
Как в тотал командере - когда на exe файл наводишь мышку - вылазит окошко с метаинфой, может она и подругому называеться, но надо вот это =)


← →
Sergey Kaminski ©   (2004-08-03 18:37) [4]

Anatoly Podgoretsky ©   (03.08.04 18:36) [2]

Воспользуюсь советом.


← →
dracula ©   (2004-08-03 18:39) [5]

а как вытащить?


← →
Sergey Kaminski ©   (2004-08-03 18:39) [6]

может быть имеется в виду VersionInfo?


← →
dracula ©   (2004-08-03 18:41) [7]

да если мы об одном говорим то Versioninfo.


← →
Sergey Kaminski ©   (2004-08-03 18:43) [8]

См. описание ресурса VERSIONINFO в Win32.hlp :)


← →
dracula ©   (2004-08-03 18:47) [9]

я бы посмотрел, а это где? (глупый вопрос, но я незнаю на него ответ). А так на примере показать никак?


← →
Sergey Kaminski ©   (2004-08-03 18:48) [10]

И функция VerQueryValue да поможет тебе! :-)


← →
Sergey Kaminski ©   (2004-08-03 18:49) [11]

Сейчас напишу пример, вышлю.


← →
dracula ©   (2004-08-03 18:49) [12]

Я бы хотел надеяться что поможет =). тока незнаю как 8)


← →
Sergey Kaminski ©   (2004-08-03 19:55) [13]

Обещанный код. Немного грязноват, но написан на колене.

type
 TFileDescr = array [0..255] of Char;
 PFileDescr = ^TFileDescr;
var
 InfoSize: DWORD;
 Dummy: Cardinal;
 FileName: string;
 Buff,LangBuff: PChar;
 PInfo: PFileDescr;
 InfoLen,LangLen: Cardinal;
 LangLocale: string;
begin
 FileName := "C:\Program Files\Windows Media Player\wmplayer.exe";

 // определяем размер структуры
 InfoSize := GetFileVersionInfoSize(
   PChar(FileName),
   Dummy
 );

 if InfoSize <> 0 then
 begin
   // выделяем память для структуры
   GetMem (Buff,InfoSize);

   // читаем весь ресурс в память
   GetFileVersionInfo(
     PChar(FileName),
     0,
     InfoSize,
     Buff
   );

   // определяем локаль строковых значений ресурса
   VerQueryValue(Buff, "\VarFileInfo\Translation", pointer(LangBuff), LangLen);
   if langLen >= 4 then
   begin
     {
      чтобы сделать более наглядно,
      можно создать record для LangBuff,
      но можно и так :)
     }
     StrLCopy(@Dummy, LangBuff, 2);
     LangLocale:= Format("%4.4x", [Dummy]);
     StrLCopy(@Dummy, LangBuff+2, 2);
     LangLocale := LangLocale + Format("%4.4x", [Dummy]);
     // Format используем для преобразования к 16-ричному виду,
     // по 4 цифры на число
   end
   else
     // если локаль не прописана явно, берем Амер. Англ., ANSI
     LangLocale := "040904E4";

   // читаем строку FileDescription из ресурса
   // для списка всех допустимых строк см. VerQueryValue  
   // в MSDN
   // напр: CompanyName FileDescription FileVersion
   // InternalName LegalCopyright OriginalFilename ProductName  
   // ProductVersion

   if VerQueryValue(
     Buff,
     PChar("\StringFileInfo\" + LangLocale + "\FileDescription"),
     Pointer(PInfo),
     InfoLen
   ) then
   begin
     ShowMessage (PInfo^);// да будет нам счастье! :)
   end;
   // освобождаем буфер ресурса
   FreeMem (Buff,InfoSize);
 end;

end;


← →
Sergey Kaminski ©   (2004-08-03 19:57) [14]

Как понятно из кода, читает FileDescription из exe.
Можно сделать покрасивее, определив заранее "нормальные" типы данных.


← →
dracula ©   (2004-08-03 22:55) [15]

Спасибо то что нужно =)


← →
Sergey Kaminski ©   (2004-08-03 23:06) [16]

Я так и знал =))



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.021 c
3-1090229620
AlexanderSK
2004-07-19 13:33
2004.08.15
Копирование данных?


1-1091180742
McSimm
2004-07-30 13:45
2004.08.15
Проблема использования интерфейса при переводе декларации с C


1-1091595190
noster
2004-08-04 08:53
2004.08.15
число или строка


1-1091447690
Maxim
2004-08-02 15:54
2004.08.15
Особые символы


1-1091044481
CrossOut
2004-07-28 23:54
2004.08.15
Преобразование String в tObject. Возможно ли это?




   Наверх