Форум: "Начинающим";
Текущий архив: 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.043 c