C#中使用ManagementClass获取本机信息

来源:互联网 发布:看门狗2优化补丁下载 编辑:程序博客网 时间:2024/05/17 03:58

C#提供 ManagementClass来对机器的信息进行管理,可以通过设定不同的管理类来获得机器的基本信息。下面给出了一些基本的信息的获取方法,包括获取CPU数目,cpu频率,内存大小,硬盘大小。

 

private void GetLocalInfo()
        {
            string cpuCount;
            string hdSize;
            string memorysize;
           
            //得到CPU信息
            ManagementClass mcpu = new ManagementClass("Win32_Processor");
            ManagementObjectCollection mncpu = mcpu.GetInstances();
            cpuCount = mncpu.Count.ToString();
            string[] cpuHz = new string[mncpu.Count];
            int count = 0;
            ManagementObjectSearcher MySearcher = new ManagementObjectSearcher("SELECT * FROM Win32_Processor");
            foreach (ManagementObject MyObject in MySearcher.Get())
            {
                cpuHz[count] = MyObject.Properties["CurrentClockSpeed"].Value.ToString();
                count++;
            }
            mncpu.Dispose();
            mcpu.Dispose();

            //得到硬盘信息
            ManagementClass mcHD = new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection moHD = mcHD.GetInstances();

            foreach (ManagementObject tempob in moHD)
            {
                hdSize = tempob.Properties["Size"].Value.ToString();
            }
            moHD.Dispose();
            mcHD.Dispose();

            //得到内存信息
            ManagementClass mcMemory = new ManagementClass("Win32_OperatingSystem");
            ManagementObjectCollection mocMemory = mcMemory.GetInstances();

            double sizeall = 0;
            foreach (ManagementObject mo in mocMemory)
            {
                if (mo.Properties["TotalVisibleMemorySize"].Value != null)
                {
                    sizeall += double.Parse(mo.Properties["TotalVisibleMemorySize"].Value.ToString());
                }
            }
            memorysize = sizeall.ToString();
            mocMemory.Dispose();
            mcMemory.Dispose();

}

原创粉丝点击