Little and Mickle

All things are difficult before they are easy.

导航

通过WMI获取系统信息一个类

using System;
using System.Management;

namespace PathFinder.OPSP.Management.Control
{
    
/// <summary>
    
/// 平台信息类
    
/// </summary>

    public class PlatformInfo
    
{
        
private string m_strCPU;
        
private string m_strOS;
        
private string m_strRAM;
        
private string m_strVM;
        
private string m_strDisk;

        
public PlatformInfo()
        
{
            
this.Refresh();
        }


        
public string CPU
        
{
            
get
            
{
                
return m_strCPU;
            }

        }


        
public string OS
        
{
            
get
            
{
                
return m_strOS;
            }

        }


        
public string RAM
        
{
            
get
            
{
                
return m_strRAM;
            }

        }


        
public string VirtualMemory
        
{
            
get
            
{
                
return m_strVM;
            }

        }


        
public string Disk
        
{
            
get
            
{
                
return m_strDisk;
            }

        }


        
public void Refresh()
        
{
            GetCPU();
            GetOS_RAM_VM();
            GetDisk();            
        }


        
private void GetCPU()
        
{
            m_strCPU 
= string.Empty;
            ManagementClass objMC 
= new ManagementClass("Win32_Processor");
            ManagementObjectCollection objMOC 
= objMC.GetInstances(); 
            
foreach(ManagementObject objMO in objMOC) 
            
{
                
if (m_strCPU != string.Empty)
                
{
                    m_strCPU 
+= "\r\n";
                }

                m_strCPU 
+= (string)objMO["Caption"];
                m_strCPU 
+= "    ";
                
uint iClockSpeed = (uint)objMO["CurrentClockSpeed"];
                m_strCPU 
+= iClockSpeed.ToString();
                m_strCPU 
+= "MHz";
                objMO.Dispose(); 
            }

            objMOC.Dispose();
            objMC.Dispose();
        }


        
private void GetOS_RAM_VM()
        
{
            ManagementClass objMC 
= new ManagementClass("Win32_OperatingSystem");
            ManagementObjectCollection objMOC 
= objMC.GetInstances(); 
            
foreach(ManagementObject objMO in objMOC) 
            
{
                m_strOS 
= (string)objMO["Caption"];
                
ulong iRam = ((ulong)objMO["TotalVisibleMemorySize"])>>10;
                m_strRAM 
= iRam.ToString() + " MB"
                
ulong iVM = ((ulong)objMO["TotalVirtualMemorySize"])>>10;
                m_strVM 
= iVM.ToString() + " MB";
                objMO.Dispose(); 
            }

            objMOC.Dispose();
            objMC.Dispose();
        }


        
private void GetDisk()
        
{
            m_strDisk 
= string.Empty;
            ManagementClass objMC 
= new ManagementClass("Win32_DiskDrive");
            ManagementObjectCollection objMOC 
= objMC.GetInstances(); 
            
foreach(ManagementObject objMO in objMOC) 
            
{
                
if (m_strDisk != string.Empty)
                
{
                    m_strDisk 
+= "\r\n";
                }

                m_strDisk 
+= "Disk";
                
uint index = (uint)objMO["Index"];
                m_strDisk 
+= index.ToString();
                m_strDisk 
+= "    ";
                
ulong iSize = (ulong)objMO["Size"];
                
int iTemp = (int)(iSize>>30);
                
if (iTemp>0)
                
{
                    m_strDisk 
+= iTemp.ToString();
                    m_strDisk 
+= " GB";
                }

                
else
                
{
                    iTemp 
= (int)(iSize >>20);
                    m_strDisk 
+= iTemp.ToString();
                    m_strDisk 
+= " GB";                    
                }
                
                objMO.Dispose(); 
            }

            objMOC.Dispose();
            objMC.Dispose();
        }

    }

}

posted on 2005-08-02 13:31  davidullua  阅读(379)  评论(0)    收藏  举报