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();
}


浙公网安备 33010602011771号