Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: 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 вся ветка

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

Наверх




Память: 0.5 MB
Время: 0.073 c
6-1086949528
rsng
2004-06-11 14:25
2004.08.15
Работа с SMTP


9-1083242798
HardPac
2004-04-29 16:46
2004.08.15
Hard-Pac (скриншоты в догонку)


14-1090931482
CHES
2004-07-27 16:31
2004.08.15
Эксперт для форматирования исходного кода


14-1090867870
VID
2004-07-26 22:51
2004.08.15
Каким же Вы представляете себе это "будущее" ?


14-1090962696
Piter
2004-07-28 01:11
2004.08.15
Новая для меня уязвимость