有時我們在開發Windows 桌面應用程式時,會發生一些弔詭的事情,作業系統位元數就是一個蠻重要的小細節,若您寫的應用程式在Windows 的32bit 作業系統上可以完美的運行,但不見得在64bit上的作業系統可以正常的執行喔!!這時就需要判斷作業系統的位元數來作應映的對策!

本篇文章將引導您如何使用C#判斷是多少bit的作業系統 32bit or 64bit。

以下程式碼為SUKI本人在網路上爬文,經過一番折騰,找到最簡短的程式碼,提供有需要的人使用!

/// <summary>
/// 判定是否運行於64bit作業系統
/// </summary>
/// <returns>是否為64bit的作業系統</returns>
public static bool Is64bit()
{
return IntPtr.Size == 8;
}

IntPtr 在官方的介紹如下:

public static int Size { get; }

屬性值

型別:System.Int32

這個處理序中的指標或控制代碼的大小,以位元組為單位。 這個屬性的值在 32 位元處理序中為 4,而在 64 位元處理序中為 8。 您可以定義程序類型,方法是在使用 C# 和 Visual Basic 編譯器編譯程式碼時,設定 /platform 參數。

參閱:http://msdn.microsoft.com/zh-tw/library/system.intptr.size(v=vs.110).aspx

***net4

Environment.Is64BitProcess 屬性 : 判斷目前處理序是否為 64 位元處理序。

http://msdn.microsoft.com/zh-tw/library/system.environment.is64bitprocess%28VS.100%29.aspx

Environment.Is64BitOperatingSystem 屬性 : 判斷目前作業系統是否為 64 位元作業系統。

http://msdn.microsoft.com/zh-tw/library/system.environment.is64bitoperatingsystem%28VS.100%29.aspx

05-11 07:44