Нет, это невозможно.
Хотя есть только несколько случаев, это не легко обнаружить.
Исполняемый файл может быть скомпилирован для конкретной архитектуры, такой как x86 (32-разрядная версия) и x64 (64-разрядная версия), но старые исполняемые файлы могут быть созданы для более старых архитектур, таких как 16-разрядная версия.
Windows XP по-прежнему поддерживала 16-битные приложения в форме эмуляции, но Windows Vista и более поздние версии вообще отказались от поддержки 16-битных приложений.
Из Windows XP существует 64-разрядная версия. Если вы используете 64-разрядную версию своей ОС, вы можете запустить 64-разрядные выпуски исполняемого файла.
Разработчик, который создает версию своего приложения для x64 и x86, может применить это, отображая ошибку при попытке запустить версию x86 в операционной системе x64.
Только из исполняемого файла невозможно запросить, для какой архитектуры он был разработан, без использования каких-либо внешних инструментов.
В дополнение к вышесказанному, для программного обеспечения могут потребоваться определенные платформы, такие как .net. Учитывая, что эти платформы обновлены, поддержка старых операционных систем в какой-то момент прекращается, что означает, что этот исполняемый файл больше нельзя запускать в этой старой операционной системе, если у вас уже не установлена более старая версия этой платформы.
Тем не менее, если вы не имеете дело с программным обеспечением, которое потенциально очень старое, вы можете смело предполагать, что программное обеспечение будет работать на Windows 7 и выше. Если вы сомневаетесь, свяжитесь с разработчиком или проверьте их веб-сайт.