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