Как проверить файл exe ли это? - Free Pascal
Формулировка задачи:
Знаю, что eсли первые два символа MZ, то это файл EXE. Кто-нибудь может написать примерно код, как проверить файл exe или нет?
Решение задачи: «Как проверить файл exe ли это?»
textual
Листинг программы
{$mode objfpc}
{$H+}
uses
Windows;
var
fn : string = 'd:\test\project1.exe';
res : DWORD;
begin
if GetBinaryType(PChar(fn), res) then
begin
writeln(res); // список кодов есть в MSDN
end
else writeln('non-executable');
end.
Объяснение кода листинга программы
- Объявлена переменная fn типа string, которая содержит путь к файлу для проверки.
- Объявлена переменная res типа DWORD, которая будет использоваться для хранения результата функции GetBinaryType.
- Выполнена проверка на наличие ошибки при вызове функции GetBinaryType с передачей в нее пути к файлу в виде PChar(fn) и указатель на переменную res.
- Если функция GetBinaryType вернула значение без ошибок, то выполняется запись в консоль значения переменной res.
- Если функция GetBinaryType вернула ошибку, то выполняется запись в консоль строки
non-executable.