C#如何用调用API获取计算机的硬盘序列号
注意是硬盘序列号,即sn号,不是ID号。我试过使用WMI的方法,不太好使用,有的计算机能获取,有的获取不了,不知道API的方法怎么用? --------------------编程问答-------------------- 帮定了,fingerprint--------------------编程问答-------------------- http://www.360doc.com/content/10/0924/15/3420024_56005445.shtml
楼主可以参考下 --------------------编程问答--------------------
--------------------编程问答-------------------- http://www.cnblogs.com/cloudstep/archive/2010/01/28/1658770.html --------------------编程问答-------------------- 先添加引用 System.Management.dll
private string[] GetMoc()
{
string[] str = new string[3];
ManagementClass mcCpu = new ManagementClass("win32_Processor");
ManagementObjectCollection mocCpu = mcCpu.GetInstances();
foreach(ManagementObject m in mocCpu)
{
str[0] = m["ProcessorId"].ToString();
}
ManagementClass mcHD = new ManagementClass("win32_logicaldisk");
ManagementObjectCollection mocHD = mcHD.GetInstances();
foreach(ManagementObject m in mocHD)
{
if(m["DeviceID"].ToString() == "C:")
{
str[1] = m["VolumeSerialNumber"].ToString();
break;
}
}
ManagementClass mcMAC = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection mocMAC = mcMAC.GetInstances();
foreach(ManagementObject m in mocMAC)
{
if((bool)m["IPEnabled"])
{
str[2] = m["MacAddress"].ToString();
break;
}
}
return str;
}
--------------------编程问答-------------------- 看清楚,我说过WMI不稳定,有的计算机可以取到硬盘序列号,有的取不到。我自己已经搞定了,用的API。 --------------------编程问答-------------------- 怎么调用第三方api,我尝试了,但VS不认那些类 --------------------编程问答-------------------- 可以调用api的。搞定了? --------------------编程问答-------------------- 怎么搞定的用什么api啊
using System.Management;
//取第一块硬盘编号
public String GetHardDiskID()
{
try
{
ManagementObjectSearcher wmiSearcher = new ManagementObjectSearcher();
wmiSearcher.Query = new SelectQuery("Win32_DiskDrive","",new string[] { "PNPDeviceID" } );
ManagementObjectCollection myCollection = wmiSearcher.Get();
ManagementObjectCollection.ManagementObjectEnumerator em =
myCollection.GetEnumerator();
em.MoveNext();
ManagementBaseObject mo = em.Current;
string id = mo.Properties["PNPDeviceID"].Value.ToString().Trim();
return id;
}
catch(Exception ex)
{
return "";
}
}//end
补充:.NET技术 , C#