码迷,mamicode.com
首页 > 系统相关 > 详细

得到本機的MAC,CPU個數,CPU係數,硬盤和內存大小

时间:2016-04-09 16:32:55      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:

/// <summary>  
        /// 获取本机的MAC地址
        /// </summary>  
        /// <returns></returns>  
        public static string GetMACString()
        {
            ManagementClass mAdapter = new ManagementClass("Win32_NetworkAdapterConfiguration");
            ManagementObjectCollection mo = mAdapter.GetInstances();
            foreach (ManagementBaseObject m in mo)
            {
                if ((bool)m["IpEnabled"] == true)
                {
                    return m["MacAddress"].ToString();
                }
            }
            mo.Dispose();

            return null;
            //ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
            //ManagementObjectCollection moc = mc.GetInstances();
            //foreach (ManagementObject mo in moc)
            //{
            //    //如果没有启用IP设置的网络设备则跳过   
            //    if (!(bool)mo["IPEnabled"])
            //        continue;

            //    // 获取属性
            //    string caption = mo["Caption"].ToString();              //名称
            //    string[] addresses = (string[])mo["IPAddress"];         //IP地址
            //    string[] subnets = (string[])mo["IPSubnet"];            //子网掩码
            //    string[] gateways = (string[])mo["DefaultIPGateway"];   //网关
            //    string[] dnses = (string[])mo["DNSServerSearchOrder"];  //DNS

            //    ManagementBaseObject newIP;

            //    // 修改IP及子网掩码
            //    newIP = mo.GetMethodParameters("EnableStatic");
            //    newIP["IPAddress"] = new string[] { "192.168.2.51" };
            //    newIP["SubnetMask"] = new string[] { "255.255.255.0" }; //修改IP同时,需要填写子网掩码
            //    mo.InvokeMethod("EnableStatic", newIP, null);


            //    // 设置网关地址 
            //    newIP = mo.GetMethodParameters("SetGateways");
            //    newIP["DefaultIPGateway"] = new string[] { "192.168.2.1" };
            //    mo.InvokeMethod("SetGateways", newIP, null);

            //    // 设置DNS 
            //    newIP = mo.GetMethodParameters("SetDNSServerSearchOrder");
            //    newIP["DNSServerSearchOrder"] = new string[] { "192.168.1.10" };
            //    mo.InvokeMethod("SetDNSServerSearchOrder", newIP, null);

        }

        /// <summary>  
        /// 获取CPU的个数
        /// </summary>  
        /// <returns></returns> 
        public static int GetCpuCount()
        {
            try
            {
                using (ManagementClass mCpu = new ManagementClass("Win32_Processor"))
                {
                    ManagementObjectCollection
                    cpus = mCpu.GetInstances();
                    return cpus.Count;
                }
            }
            catch
            {

            }

            return -1;
        }

        /// <summary>  
        /// 获取CPU的频率这里之所以使用string类型的数组,主要是因为cpu的多核  
        /// </summary>  
        /// <returns></returns>  
        public static string[] GetCpuMHZ()
        {
            ManagementClass mc = new ManagementClass("Win32_Processor");
            ManagementObjectCollection cpus = mc.GetInstances();
            string[] mHz = new string[cpus.Count];
            int c = 0;
            ManagementObjectSearcher mySearch = new ManagementObjectSearcher("select * from Win32_Processor");
            foreach (ManagementObject mo in mySearch.Get())
            {
                mHz[c] = mo.Properties["CurrentClockSpeed"].Value.ToString();
                c++;
            }
            mc.Dispose();
            mySearch.Dispose();

            return mHz;
        }


        /// <summary>  
        /// 获取硬盘的大小 
        /// </summary>  
        /// <returns></returns>  
        public static string GetSizeOfDisk()
        {
            ManagementClass mc = new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moj = mc.GetInstances();
            foreach (ManagementObject m in moj)
            {
                return m.Properties["Size"].Value.ToString();
            }

            return "-1";
        }

        /// <summary>  
        /// 获取内存的大小 
        /// </summary>  
        /// <returns></returns>  
        public static string GetSizeOfMemery()
        {

            ManagementClass mc = new ManagementClass("Win32_OperatingSystem");
            ManagementObjectCollection moc = mc.GetInstances();
            double sizeAll = 0.0;
            foreach (ManagementObject m in moc)
            {
                if (m.Properties["TotalVisibleMemorySize"].Value != null)
                {
                    sizeAll += Convert.ToDouble(m.Properties["TotalVisibleMemorySize"].Value.ToString());
                }
            }
            mc = null;
            moc.Dispose();
            return sizeAll.ToString();
        }

 

得到本機的MAC,CPU個數,CPU係數,硬盤和內存大小

标签:

原文地址:http://www.cnblogs.com/onlystar/p/5371696.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!