Domanda

Vorrei offrire ai miei utenti di correggere i link a una versione aggiornata del mio programma basato sulla piattaforma in esecuzione su, quindi ho bisogno di sapere se sono attualmente in esecuzione su un OS x86 o x64.

Il migliore che ho trovato è tramite Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"), ma io credo che ci sarebbe qualche funzionalità incorporata per questo?

È stato utile?

Soluzione

Ambiente.Is64BitOperatingSystem e Ambiente.Is64BitProcess vengono introdotti nel .Rete 4.Per .NET 2 avrete bisogno di provare alcune delle altre risposte.

Altri suggerimenti

Chiamata IsWow64Process per scoprire se il processo a 32 bit è in esecuzione in WOW64 su un sistema operativo a 64 bit.Si può chiamare GetNativeSystemInfo per scoprire esattamente di cosa si tratta:il wProcessorArchitecture member di SYSTEM_INFO sarà PROCESSOR_ARCHITECTURE_INTEL per la versione a 32-bit, PROCESSOR_ARCHITECTURE_AMD64 per x64 e PROCESSOR_ARCHITECTURE_IA64 per i processori Itanium.

Controllare la dimensione del IntPtr con il Maresciallo.SizeOf.32 bit = 4 byte, 64 bit = 8 byte.

Edit:Io non sono sicuro che questo è ciò che si sta cercando dopo la lettura di nuovo la domanda.

Si può determinare un sacco tramite variabili di ambiente come utilizzato in C# - Come ottenere Program Files (x86) su Windows a 64 bit [E questo è accaduto per i miei gusti meglio di Mike per la risposta che mi sono fatto +1, come mi capita di essere interessati a trovare la cartella dei File di Programma nome]

Controllare IntPtr.Size .È necessario disporre di piattaforma di destinazione come AnyCPU.

da qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top