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

Вниз

Распознавание файлов?   Найти похожие ветки 

 
koha ©   (2006-11-25 22:19) [0]

Есть проблема с распознанием exe- Файлов. Как распазнать exe-файл является ли он 16-битным или 32-битным, если он не содержит информацию о версии и типе? Какие признаки в нутри файлов необходимо использовать? Всегда ли в win32 -файлах присутствует строка "This program must be run under Win32" Или есть функции которые в Delphi можно задействовать?


 
Leonid Troyanovsky ©   (2006-11-25 23:44) [1]


> koha ©   (25.11.06 22:19)  

> Есть проблема с распознанием exe- Файлов. Как распазнать
> exe-файл является ли он 16-битным или 32-битным, если он


http://groups.google.com/group/fido7.ru.delphi/msg/300c5ba9eaab2557

--
Regards, LVT.


 
Джо ©   (2006-11-25 23:50) [2]

GetBinaryType


 
koha ©   (2006-11-26 16:20) [3]

Оба метода попробовал - работаю, но вот при написании своей функции

function TMainFrm.Get_FileTypeOS(FileName: String): Integer;
Var BType: Cardinal;
begin
 GetBinaryType(PChar(FileName),BType);
 case BType of
   SCS_32BIT_BINARY : result:= 1;

   SCS_64BIT_BINARY : result:= 2; - эта константа не воспринимается

   SCS_DOS_BINARY   : result:= 3;
   SCS_OS216_BINARY : result:= 4;
   SCS_PIF_BINARY   : result:= 5;
   SCS_POSIX_BINARY : result:= 6;
   SCS_WOW_BINARY   : result:= 7;
 end;
end;


Хотелось бы чтобы в этом месте не возникало ошибки, до тех пор пока программа не попадет на нужную платформу OS


 
Джо ©   (2006-11-26 16:31) [4]

const
 SCS_64BIT_BINARY = 6;


 
Джо ©   (2006-11-26 16:32) [5]

А смысл это функции? Зачем еще одну "прокладку" делать?


 
DrPass ©   (2006-11-26 16:35) [6]

А зачем ты вообще эту перестановку цифирек затеял? GetBinaryType итак возвращает цифровой код
 SCS_32BIT_BINARY = 0;
 SCS_DOS_BINARY = 1;
 SCS_WOW_BINARY = 2;
 SCS_PIF_BINARY = 3;
 SCS_POSIX_BINARY = 4;
 SCS_OS216_BINARY = 5;
 SCS_64BIT_BINARY = 6;


 
koha ©   (2006-11-26 16:46) [7]

Это был только упрощенный пример - по другому быдет выглядеть все:

SCS_64BIT_BINARY : begin
                              //........ мой код
                             result:= 2;
                           end;


А функция переопределяет значение Т.К. будет в другом операторе case участвовать и мне так нужно - так я двух зайцев убиваю или наверное заседелся очень.

Интересует меня вот что: SCS_64BIT_BINARY - сейчас ее в системе нет, а как сделать, чтоб в программе она присутствовала и компилятор необращал внимание, что ее нет.


 
Джо ©   (2006-11-26 16:48) [8]

> SCS_64BIT_BINARY - сейчас ее в системе нет

Это константа. См. [4] Джо.


 
DrPass ©   (2006-11-26 16:49) [9]


> сейчас ее в системе нет,

В какой еще системе? Ее нет в модуле windows.pas, который Борланд написала еще до того, как Microsoft ввела эту константу. Напиши const SCS_64BIT_BINARY = 6, и будет тебе счастье


 
koha ©   (2006-11-26 16:50) [10]

> Джо ©   (26.11.06 16:48) [8]

>> SCS_64BIT_BINARY - сейчас ее в системе нет

> Это константа. См. [4] Джо.

SCS_64BIT_BINARY = 6; - это ее родное значение?


 
Джо ©   (2006-11-26 16:56) [11]

> [10] koha ©   (26.11.06 16:50)
> SCS_64BIT_BINARY = 6; - это ее родное значение?

Нет, блин, троюродное.


 
koha ©   (2006-11-26 16:57) [12]

> Джо ©   (26.11.06 16:56) [11]

Ладно, уболтал - так уж и быть, поверю.


 
Джо ©   (2006-11-26 16:58) [13]

> [12] koha ©   (26.11.06 16:57)
> > Джо ©   (26.11.06 16:56) [11]
>
> Ладно, уболтал - так уж и быть, поверю.

Ты мне делаешь отдолжение. Уволь.


 
koha ©   (2006-11-26 17:02) [14]

Джо ©   (26.11.06 16:58) [13]
> Ты мне делаешь отдолжение. Уволь.

Ладно, уболтал - так уж и быть, поверю. - это юмор такой был, а не повод.


 
koha ©   (2006-11-26 21:51) [15]

И снова вернусь к теме, увы жизнь заставляет.

С определением EXE - файлов стало все понятно, а как на счет sys - файлов

И как в delphi определить 16 или 32 битные sys - файлы
Пробывал этими функциями - неопределяют.



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

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

Наверх




Память: 0.5 MB
Время: 0.027 c
6-1153716134
Kacnep
2006-07-24 08:42
2006.12.10
Indy предварительная проверка на разрешенные IP для подключения


1-1161939238
StriderMan
2006-10-27 12:53
2006.12.10
Цвет точек сетки


8-1146213177
xman
2006-04-28 12:32
2006.12.10
Canvas с тенью


2-1164029291
Makhanev Alexander
2006-11-20 16:28
2006.12.10
Сравнивание объектов...


2-1164555764
ViktorZ
2006-11-26 18:42
2006.12.10
Update для 2-ух таблиц