• C# 如何判断系统是64位还是32位【轉】


    判断系统是否是64位的方法有很多。

    对于C#来说,调用WMI是一种简单易行的方式。我们可以用Win32_Processor类里面的AddressWidth属性来表示系统的位宽。AddressWidth的值受CPU和操作系统的双重影响。

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


    32bit OS64bit OS
    32bit CPUAddressWidth = 32N/A
    64bit CPUAddressWidth = 32AddressWidth = 64


    可以用下面的C#代码得到AddressWidth的值
    (注意需添加引用System.Management)

    public static string Distinguish64or32System()
    {
    try
    {
    string addressWidth = String.Empty;
    ConnectionOptions mConnOption
    = new ConnectionOptions();
    ManagementScope mMs
    = new ManagementScope("\\\\localhost", mConnOption);
    ObjectQuery mQuery
    = new ObjectQuery("select AddressWidth from Win32_Processor");
    ManagementObjectSearcher mSearcher
    = new ManagementObjectSearcher(mMs, mQuery);
    ManagementObjectCollection mObjectCollection
    = mSearcher.Get();
    foreach (ManagementObject mObject in mObjectCollection)
    {
    addressWidth
    = mObject["AddressWidth"].ToString();
    }
    return addressWidth;
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.ToString());
    return String.Empty;
    }
    }

    

    IntPtr.Size, Marshal.SizeOf(typeof(int)) 這兩種方法經測試是錯誤的,運行的時候如果以32位程序去執行就會得到32位結果。

    CPU32位及操作系統64位暫未測試

  • 相关阅读:
    python学习笔记Day3
    python学习笔记Day2
    IIS7.5部署除静态页面外都是404的解决方案
    CommandBehavior.CloseConnection有何作用
    没事别老待在家里
    冻结表格行列的思路
    如何构建逻辑清晰的可拖拽树的数据结构
    “仅次于20年前的最好的时间是现在“
    java的静态代理和2种动态代理(未完,待续)
    i++和++i
  • 原文地址:https://www.cnblogs.com/ywkpl/p/2059996.html
Copyright © 2020-2023  润新知