c#取得硬件信息

using System.Management;


//取CPU号
public string GetCpuID() 
{
 
try
 
{
  ManagementClass mc 
= new ManagementClass("Win32_Processor");
  ManagementObjectCollection moc 
= mc.GetInstances();

  
string strCpuID = null ;
  
foreach( ManagementObject mo in moc ) 
  
{
   strCpuID 
= mo.Properties["ProcessorId"].Value.ToString();
   
break
  }

  
return strCpuID;
 }

 
catch
 
{
  
return "";
 }

}


//取第一块硬盘号
public string GetHardDiskID() 
{
 
try
 
{
  ManagementObjectSearcher searcher 
= new ManagementObjectSearcher("Select * FROM Win32_PhysicalMedia");
  
string strHardDiskID = null ;
  
foreach(ManagementObject mo in searcher.Get()) 
  
{    
   strHardDiskID 
= mo["ModuleNumber"].ToString().Trim();
   
if(strHardDiskID != "")
   
{
    
break;
   }

  }

  
return strHardDiskID ;
 }

 
catch
 
{
  
return "";
 }

}
//end 

//取第一块网卡号
public string GetNetworkID() 
{
 
try
 
{
  ManagementObjectSearcher searcher 
= new ManagementObjectSearcher("Select * FROM Win32_NetworkAdapterConfiguration");
  
string strNetworkID = null ;
  
foreach(ManagementObject mo in searcher.Get()) 
  
{    
   strNetworkID 
= mo["MACAddress"].ToString().Trim();
   
if(strNetworkID != "")
   
{
    
break;          
   }

  }

  
return strNetworkID ;
 }

 
catch
 
{
  
return "";
 }

}
//end 

//取串口
public int getport(int portnum)
{
 
//链接服务器
 DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");
 
//检测是否已存在相同串口的站点,并获取PORT值
 foreach(DirectoryEntry e in root.Children)
 

  
if(e.SchemaClassName == "IIsWebServer")
  
{
   
if(e.Properties["ServerBindings"].Value != null)
   
{
    
int strstart = e.Properties["ServerBindings"].Value.ToString().IndexOf(":",0);
    
int strend = e.Properties["ServerBindings"].Value.ToString().IndexOf(":",strstart+1);
    
string thisport = e.Properties["ServerBindings"].Value.ToString().Substring((strstart+1),(strend-strstart-1));
    
if(thisport == portnum.ToString())
    
{
     portnum
++;
     portnum 
= getport(portnum);
     
break;
    }

   }

  }

 }

 
return portnum;
}


/以下示例说明如何从 HKEY_CURRENT_USER 读取一个 DWORD 值:
using Microsoft.Win32;
RegistryKey regVersion 
= new RegistryKey();
string keyValue = "Software\\Microsoft\\TestApp\\1.0"//此处你在注册表HKEY_CURRENT_USER中选一个就是了
regVersion = Registry.CurrentUser.OpenSubKey(keyValue,false);
int intVersion = 0;
if(regVersion != null)
{
intVersion 
= regVersion.GetValue("Version",0);
regVersion.Close();
}


//以下示例读取并递增一个 DWORD 值,然后将其写入 HKEY_CURRENT_USER:
RegistryKey regVersion = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\TestApp\\1.0"true);
if(regVersion != null)
{
 
// Key doesn't exist; create it.
regVersion = 
Registry.CurrentUser.CreateSubKey(
"SOFTWARE\\Microsoft\\TestApp\\1.0");
}


int intVersion = 0;
if(regVersion != null)
{
 intVersion 
= regVersion.GetValue("Version"0);
 intVersion 
= intVersion + 1;
 regVersion.SetValue(
"Version", intVersion);
 regVersion.Close();
}

posted on 2006-06-27 00:02  Ameng  阅读(287)  评论(0)    收藏  举报