2010-09-03 98 views
4

可能重複:
How to detect Windows 64 bit platform with .net?C#如何獲得操作系統體系結構(x86或x64)?

如何我.NET 2.0檢索操作系統體系結構(x86或x64)?

我還沒有找到任何好的方法來在Google上獲得操作系統架構。我發現的是如何判斷進程是32位還是64位。

如果在.NET 2.0中找不到任何東西,請告訴我。 :)

+2

重複[如何檢測Windows 64位平臺與.net?](http://stackoverflow.com/questions/336633/how-to -detect-windows-64-bit-platform-with-net) – GenericTypeTea 2010-09-03 19:57:08

回答

10

不是在重複的問題,接受的答案,但是這是我怎麼會做它:

使用GetEnvironmentVariable去尋找PROCESSOR_ARCHITEW6432變量。如果它不存在,你必須運行32位:

bool is64bit = !string.IsNullOrEmpty(
    Environment.GetEnvironmentVariable("PROCESSOR_ARCHITEW6432")); 
+3

這似乎比dup中被接受的答案簡單得多。 – 2010-09-03 20:02:31

+0

顯然這是爲WOW64進程設置的(即在64位操作系統上運行的32位代碼)。看起來像一種片狀的東西來檢查。什麼是阻止我設置該環境變量,僅用於踢球,還是僅僅因爲我喜歡讓你的代碼很難? – asveikau 2010-09-03 20:05:43

+0

@asveikau - 一點都沒有。這是一段比較簡單的代碼,但正如你所說,並非100%可靠。 – GenericTypeTea 2010-09-03 20:08:19