Цитата PavlovAV:
Вопрос-то был в следующем - с чего вдруг винда понимает, что переименованный файл (из exe в bat) является на самом деле exe-файлом, и все работает? Документировано ли это где-нибудь? »
|
Здесь:
Код:

HKEY_CLASSES_ROOT\batfile\shell\open\command
Ваш «пакетный» файл отправляется на исполнение, где происходит разбор содержимого его заголовка, и он исполняется, как любой другой PE-файл.
Цитата PavlovAV:
Да, не всегда это прокатывает (тот же ворд не заработает, т.к. сложный установщик, реестр задействован и т.п.) »
|
Однако, работает.
Цитата PavlovAV:
По сути - и txt можно открыть хоть вордом, хоть экселем - все будет читаемо, но наоборот - мало вероятно))) »
|
Некорректное объяснение. У нас, фактически, всего-навсего сменён тип файла. Причём эта смена никак не влияет на метод запуска — в обеих разделах реестра однотипное содержимое в глаголе «Open». И только. В любом случае всё вращается вокруг
CreateProcess function (Windows).