¿Qué tan técnica quieres una respuesta? Probablemente pueda forzar al exe para que siempre ejecute 32 bits con algunas herramientas de SDK, pero requiere un poco de trabajo.
La respuesta fácil es iniciar desde un proceso de 32 bits (por ejemplo, usar %SystemRoot%\SYSWOW64\cmd.exe
para iniciar).
Lo más complejo es verificar qué tipo de exe es, luego modificarlo usted mismo. El fondo aquí es comprender que el desarrollador crea código compilado de lenguajes que funcionan directamente con las API de Windows como 32 bits o 64 bits en el momento de la compilación. Esto no se puede cambiar sin volver al código fuente.
Sin embargo, cada vez más aplicaciones se escriben a través de una capa de virtualización que facilita la escritura de aplicaciones. Hay dos comunes: .NET y Java. No estoy seguro acerca de Java, excepto que sé que forzar la instalación correcta del tiempo de ejecución de Java resuelve el problema.
Para .NET puede usar las herramientas de SDK para:
- Validar que la aplicación es "Cualquier CPU":
corflags myExe.exe
. Al usar una utilidad del SDK de .NET para leer los encabezados de un ensamblado de .NET, para un exe, se devolverá algo como:
Versión: v4.0.30319
Encabezado CLR: 2.5
PE: PE32
CorFlags: 0x20003
ILONLY: 1
32BITREQ: 0
32BITPREF: 1
Firmado: 0
el 32BITREQ
me dice que esto es AnyCPU
debido a 32 bits no es necesario.
- Use
corflags
con su /32BITREQ+
opción para modificar el exe para que sea solo de 32 bits.