Если вы когда-нибудь слышали об изменении расширения файла с EXE на COM, вы, возможно, задавались вопросом, может ли он работать только с несколькими редкими файлами или он будет работать почти с любым файлом EXE, который у вас есть. В сегодняшнем посте SuperUser Q&A есть ответ на любопытный вопрос читателя.
Сегодняшняя сессия вопросов и ответов проходит благодаря SuperUser - подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Вопрос
Читатель SuperUser Рой Намир хочет знать, всегда ли расширения EXE-файлов можно заменить на COM ?:
Наше антивирусное программное обеспечение отказало мне в копировании EXE-файла в папку автозагрузки Windows 7 (например, calc.exe), поскольку это EXE-файл. Затем я изменил расширение файла с EXE на COM и смог легко скопировать его в папку без проблем (очень профессионально).
И, конечно же, calc.com работает так же хорошо, как calc.exe, что заставило меня задуматься. Когда программа с расширением EXE не будет работать при изменении расширения на COM? Практически все проверенные мной EXE-файлы работают. Я хотел бы знать причины «почему и почему нет» этого вопроса.
Можно ли всегда заменять расширения EXE-файлов на COM?
Ответ
У участника SuperUser Math Man есть ответ для нас:
Это связано с внутренним форматом файла. Первоначально COM-файлы были простыми образами памяти, а EXE-файлы имели множество связанных с ними заголовков. В результате вы не могли их переименовать.
Шло время, и им приходилось делать вещи обратно совместимыми, и Microsoft изменила его так, чтобы операционная система смотрела на сам файл, чтобы определить, какой это тип файла, а не расширение. В результате, когда вы запускаете переименованный файл, Windows полностью игнорирует расширение.
Посетите ссылки ниже для более подробного и подробного объяснения.
В чем разница между .com, .exe и .bat? [StackOverflow]
В чем разница между расширениями COM и EXE? [Microsoft Developer Blog]
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь .