Quão técnica é a resposta que você deseja? Provavelmente, você pode forçar o exe a sempre executar 32 bits com algumas ferramentas SDK, mas isso requer um pouco de trabalho.
A resposta fácil é iniciar a partir de um processo de 32 bits (por exemplo, use %SystemRoot%\SYSWOW64\cmd.exe
to launch).
O mais complexo é verificar que tipo de exe é e modificá-lo você mesmo. O plano de fundo aqui é entender que o código compilado de idiomas que trabalham diretamente com as APIs do Windows é criado como 32 bits ou 64 bits em tempo de compilação pelo desenvolvedor. Isso não pode ser alterado sem voltar ao código fonte.
No entanto, cada vez mais os aplicativos são gravados por meio de uma camada de virtualização que facilita a gravação dos aplicativos. Existem dois comuns: .NET e Java. Não tenho certeza sobre Java, exceto sabendo que forçar a instalação correta do Java Runtime resolve o problema.
Para .NET, você pode usar as ferramentas do SDK para:
- Validar que a aplicação é "AnyCPU":
corflags myExe.exe
. Usando um utilitário do .NET SDK para ler os cabeçalhos de um assembly .NET, um exe retornará algo como:
Versão: v4.0.30319
Cabeçalho do CLR: 2,5
PE: PE32
CorFlags: 0x20003
ILONLY: 1
32BITREQ: 0
32BITPREF: 1
Assinado: 0
o 32BITREQ
me diz que isso ocorre AnyCPU
porque 32 bits não é necessário.
- Use
corflags
com sua /32BITREQ+
opção para modificar o exe para ser apenas de 32 bits.