Я думаю, что вы вызвали сбой, возможно. Как *.Расширение COM взято из MS-DOS и только для 16-битных двоичных файлов, 32-битная Windows создала ярлык PIF для этих файлов, который запускает уровень совместимости для настройки 16-битной среды. Однако эта часть не существует в 64-битной Windows, так как 16-битные исполняемые файлы достаточно стары и есть много альтернатив для их запуска; DOSBOX например.
Однако, похоже, что процедура обнаружения этой ситуации все еще существует в 64-разрядной версии Windows и запускается при нацеливании на *.COM-файл, пока все слои совместимости исчезли!
Вы можете самостоятельно проверить, что попытка создать ярлык для COM-файла по-прежнему приводит к созданию файла PIF:
- Создайте новую пустую папку.
- Скопируйте любой COM-файл, который вы хотите проверить. Даже вы можете переименовать любой файл в *.COM.
- В папке щелкните правой кнопкой мыши и выберите новый ярлык.
- Введите полный путь вашего тестового COM-файла и нажмите "Готово"
- Он скажет, что "невозможно создать ярлык", но ярлык на самом деле сделан.
- Смотрите свойства нового ярлыка - это PIF.
Однако, поскольку в x64 Windows больше нет 16-битного уровня совместимости, этот PIF не может работать и не может быть правильно настроен. Естественно, что логика создания файлов PIF для COM также должна быть удалена, но по какой-то причине это еще не сделано. О чем я могу догадаться, так это то, что в 64-разрядной версии Windows на самом деле редко используется COM-файл, поэтому его исправление имеет очень низкий приоритет.
Итак, что это за *.COM-файлы в папке Windows, то? На самом деле они являются 64-битными исполняемыми файлами формата EXE, но переименованы в *.COM для старых пакетных скриптов.
Также верно, что ярлык для COM-файла может обмануть пользователей для запуска вредоносного ПО, так что MS намеренно заблокировала это, но все равно можно прикрепить переименованный COM-файл (который изначально является EXE-файлом) непосредственно к электронному письму или чему-то еще в любом случае. и все еще возможно создать ярлык для обычного EXE-файла, а затем переименовать его в *.COM. Поэтому я не думаю, что проблема безопасности была главной причиной, заставляющей Windows вести себя так странно. Если бы это было из-за проблемы безопасности и преднамеренного, это отобразило бы надлежащее сообщение об ошибке / предупреждение.