Насколько технический ответ вы хотите? Вероятно, вы можете заставить exe-файл всегда запускать 32-битную версию с помощью нескольких инструментов SDK, но это требует небольшой работы.
Простой ответ - запустить 32- битный процесс (например, используйте для запуска %SystemRoot%\SYSWOW64\cmd.exe
).
Сложнее проверить, что это за исполняемый файл, а затем изменить его самостоятельно. Основой здесь является понимание того, что скомпилированный код из языков, которые напрямую работают с API-интерфейсами Windows, создается как 32-битный или 64-битный во время компиляции разработчиком. Это не может быть изменено без возврата к исходному коду.
Однако все чаще приложения пишутся через уровень виртуализации, который облегчает написание приложений. Есть два общих: .NET и Java. Я не уверен насчет Java, за исключением того, что знаю, что форсирование правильной установки во время выполнения Java решит проблему.
Для .NET вы можете использовать инструменты SDK для:
- Проверьте, что приложение "AnyCPU":
corflags myExe.exe
. Используя утилиту из .NET SDK для чтения заголовков сборки .NET, exe вернет что-то вроде:
Version : v4.0.30319
CLR Header: 2.5
PE : PE32
CorFlags : 0x20003
ILONLY : 1
32BITREQ : 0
32BITPREF : 1
Signed : 0
32BITREQ
говорит мне, что это AnyCPU
потому что 32- битный не требуется.
- Используйте
corflags
с параметром /32BITREQ+
чтобы изменить исполняемый файл только на 32- битный .