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

Вниз

Как получить значение нестандартную shell информацию о exe шнике?   Найти похожие ветки 

 
Gbp   (2008-05-17 15:35) [0]

Есть нестандартный параметр exe-файла CompiledScript. Как получать такие нестандартные параметры?


 
Сергей М. ©   (2008-05-17 17:00) [1]

Это не "параметр", это GetFileVersionInfo


 
Gbp   (2008-05-17 21:06) [2]

Спасибо за информацию, но как мне получить нестандартный параметр CompiledScript? С помощью структур типа VarFileInfo получить такой параметр невозможно.


 
Gbp   (2008-05-18 12:44) [3]

Параметр ComiledScript расположен на вкладке "Версия".


 
Renegat   (2008-05-18 12:57) [4]

Прога, откуда получаем - твоя? Или нужно это выдернуть из чужой?


 
DVM ©   (2008-05-18 14:49) [5]

Какая разница своя/чужая. Для получения информации о версии и аналогичной прочей лабуды, которой может быть напихано в exe файл сколько угодно в виде параметр=значение служат следующие, как уже сказали. функции:

GetFileVersionInfoSize
GetFileVersionInfo
VerQueryValue


 
Gbp   (2008-05-18 15:10) [6]

Ну про функции эти я знаю. В VerQueryValue вторым параметром нужно передавать строку, в которой указан путь к нужной информации. Собственно вопрос, что нужно передавать в VerQueryValue, чтобы получить такое нестандартное значение.

var
 Size: Cardinal;
 FileHandle: THandle;
 Data: Pointer;
 FileInfo: Pointer;
 InfoLength: Cardinal;
begin
 Size := GetFileVersionInfoSize("С:\sample.exe", FileHandle);
 Data := GetMemory(Size);

 if not GetFileVersionInfo("С:\sample.exe", FileHandle, Size, Data) then
   ShowMessage(IntToStr(GetLastError));

 if not VerQueryValue(Data, "CompiledScript", FileInfo, InfoLength) then // не работает
     ShowMessage(IntToStr(GetLastError));


 
Renegat   (2008-05-18 15:14) [7]

А FileInfo кто инициализировать будет?


 
Renegat   (2008-05-18 15:15) [8]

Извиняюсь, не нужно его инициализировать :(


 
DVM ©   (2008-05-18 17:34) [9]


> Ну про функции эти я знаю.

Не фига ты не знаешь, судя по [6]. Читай справку по ним.


 
Gbp   (2008-05-18 19:40) [10]

2 DVM, офигенный совет, ради таких советов и стоит посещать форумы.

Ладно, вроде разобрался.


type
 LANGANDCODEPAGE = record
   wLanguage: WORD;
   wCodePage: WORD;
 end;  

var
 Size: Cardinal;
 FileHandle: THandle;
 Data: Pointer;
 LanguageCodePage: ^LANGANDCODEPAGE;
 InfoLength: Cardinal;
 FormatString: string;
 Buffer: Pointer;
begin
 Size := GetFileVersionInfoSize("С:\sample.exe", FileHandle);
 Data := GetMemory(Size);

 GetFileVersionInfo("C:\sample.exe", FileHandle, Size, Data);

 VerQueryValue(Data, "\VarFileInfo\Translation", Pointer(LanguageCodePage), InfoLength);

 FormatString := Format("\StringFileInfo\0%x0%x\CompiledScript", [LanguageCodePage.wLanguage, LanguageCodePage.wCodePage]);

 VerQueryValue(Data, PChar(FormatString), Buffer, InfoLength);

 ShowMessage(PChar(Buffer));


 
DVM ©   (2008-05-18 23:25) [11]


> Gbp   (18.05.08 19:40) [10]
> 2 DVM, офигенный совет, ради таких советов и стоит посещать
> форумы.
>
> Ладно, вроде разобрался.

Вот видишь. Сам. Это главное. Я ж вижу сам ты способен в работе функций разобраться, поэтому имен функций вполне достаточно для подсказки.

Если же хочешь подробную подсказку - то посмотри один из модулей RXLib (не помню название) там есть класс-обертка для этих функций.


 
Германн ©   (2008-05-19 01:18) [12]


> Если же хочешь подробную подсказку - то посмотри один из
> модулей RXLib (не помню название) там есть класс-обертка
> для этих функций.
>

TVersionInfo из Rxverinf.pas


 
Gbp   (2008-05-19 14:08) [13]

2DVM. Спасибо, не даете затупеть :)
Всем спасибо за ответы, код работает, вопрос закрыт.



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

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

Наверх




Память: 0.5 MB
Время: 0.014 c
2-1240585096
Fraizer
2009-04-24 18:58
2009.06.14
stringgrid добавление строк сверху


15-1239026858
Cyrax
2009-04-06 18:07
2009.06.14
Можно ли в Москве устроиться программистом без временной рег-ции?


3-1222059679
ЮЮ
2008-09-22 09:01
2009.06.14
MS Access-овские OLE-объекты. Как с ними работать без Access-а?


4-1210845453
DJ Kondakov
2008-05-15 13:57
2009.06.14
Координата правого нижнего угла экрана


15-1239121494
theAddon
2009-04-07 20:24
2009.06.14
Помогите написать небольшую программку