Como executo o exe com base no tamanho de bit do Windows?

0

Eu tenho dois arquivos .exe e gostaria de criar um programa que possa executar um deles com base no tamanho de bit do Windows (ou seja, executar program1.exe se for de 64 bits e executar program2.exe se 32 bits). Alguém sabe onde devo começar a procurar?

    
por yiwei 14.04.2014 / 21:15

2 respostas

1

Você pode usar um script simples do Windows Powershell como seu lançador.

Veja como você pode dizer ao seu arquiteto do PS: link

A idéia é verificar quantos bytes a estrutura IntPtr é longa. 4 = > 32b, 8 = > 64b.

Se você realmente quer um exe, no DotNet, você pode usar esta verificação para determinar se o seu 64b:

BOOL Is64BitWindows() {
 #if defined(_WIN64)
  return TRUE;  // 64-bit programs run only on Win64
 #elif defined(_WIN32)
  // 32-bit programs run on both 32-bit and 64-bit Windows
  // so must sniff
  BOOL f64 = FALSE;
  return IsWow64Process(GetCurrentProcess(), &f64) && f64;
 #else
  return FALSE; // Win64 does not support Win16
 #endif
}

mais informações aqui: link

    
por 14.04.2014 / 21:39
0

Você sempre pode verificar a variável de ambiente %programfiles(x86)% . Se for uma máquina Windows de 64 bits, ele retornará o caminho para "Arquivos de Programas (x86)", se não for de 64 bits, não será definido e retornará "% programfiles (x86)%".

Você pode verificar isso com um lote, PS, .Net ou o que quiser. :)

    
por 14.04.2014 / 21:50

Tags