天天看點

C#如何判斷作業系統位數是32位還是64位

方法一:

對于c#來說,調用wmi是一種簡單易行的方式。我們可以用win32_processor類裡面的addresswidth屬性來表示系統的位寬。addresswidth的值受cpu和作業系統的雙重影響。

具體的值如下面的表格所示:

32bit os

64bit os

32bit cpu

addresswidth = 32

n/a

64bit cpu

addresswidth = 64

可以用下面的c#代碼得到addresswidth的值

(注意需添加引用system.management)

C#如何判斷作業系統位數是32位還是64位
C#如何判斷作業系統位數是32位還是64位

方法二:(需framework4.0+)

如傳回值為true則表示是64位,如傳回值為false則表示為32位。

方法三:

這個方法也是最直接的方法,但是有條件限制,例用intptr結構的size屬性來檢視系統的位寬

命名空間是system;

前題是程式需要采用any/cpu的方式進行編輯;

正常情況下int的位寬是4位,即是32位作業系統。

C#如何判斷作業系統位數是32位還是64位
C#如何判斷作業系統位數是32位還是64位

方法四:

64位wnidows 裡面有個叫wow64 的模拟器技術,可以使32位的程式在64位windows 上運作。 當你想在程式裡面針對32b位/ 64位系統執行不同代碼的時候, 需要判斷作業系統是32位還是64位。 使用 windows api函數 getnativesysteminfo 可以獲得這個資訊。

C#如何判斷作業系統位數是32位還是64位
C#如何判斷作業系統位數是32位還是64位

另外,windows api 還提供了 iswow64process 函數判斷程式是不是運作在wow64模拟器之上。

需要注意是getnativesysteminfo  函數從windows xp 開始才有, 而 iswow64process  函數從 windows xp with sp2 以及 windows server 2003 with sp1 開始才有。 是以使用該函數的時候最好用getprocaddress。

C#如何判斷作業系統位數是32位還是64位
C#如何判斷作業系統位數是32位還是64位

摘自:http://www.cnblogs.com/czzju/articles/2482474.html

繼續閱讀