Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.10;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.053 c
11-1139899673
BaryVetaL
2006-02-14 09:47
2006.12.10
Проект VCL2KOL


3-1159721176
DimDim
2006-10-01 20:46
2006.12.10
Перекрестный запрос


15-1163963893
radium
2006-11-19 22:18
2006.12.10
Как побороть троян?


1-1161812639
VeLeS
2006-10-26 01:43
2006.12.10
Как одновременно редактировать дату и время в TDatetime?


2-1164292901
Defort
2006-11-23 17:41
2006.12.10
Работа с датой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский