我想获得硬盘的物理序列号,下面是代码,可以获得,现在问题是,当电脑插入存储设备,如mp3时,程序获得的就不是硬盘序列号了,而是关于mp3的信息,我机器上是“USB 2.0(HS)、、、”,怎么解决呀,小弟急用
string hardNumber = "";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
try
{
foreach (ManagementObject mo in moc1)
{
hardNumber = (string)mo.Properties["Model"].Value;
}
MessageBox.Show(hardNumber);
}
catch
{
}
string hardNumber = "";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
try
{
foreach (ManagementObject mo in moc1)
{
hardNumber = (string)mo.Properties["Model"].Value;
}
MessageBox.Show(hardNumber);
}
catch
{
}
解决方案 »
- winform的菜单在小分辨率下显示不全
- c#如何写发送短信的代码
- 知道对方的Gmail邮箱地址 如何获取他的公开的profile信息??
- Process.Start(批处理的路径)
- 在线等一个棘手的问题,请大家帮忙啊
- ~~~~!!!!今天的面试C#题目 要我做一个具体东西出来 大家进来看看!!!!!
- 安装EXPRESSION STUDIO一直提示无法找到安装源?
- 怎样用程序控制web.config文件,例如通过程序向web.config中添加配置信息,和修改配置信息
- VS2012 winform怎么打包
- 请问如何将comboBox的所有项保存在配置文件,如一个xml里。又怎么读出来呢?
- 到底有人会么?关于image控件和FileUpload控件联动的问题
- UDP怎样传输结构?
http://topic.csdn.net/u/20071027/16/955bf7e0-6bbc-4049-af09-ac6e48189743.html
判断类型来获取
//因为你的moc1是个Collection,你取到的只是最后一个盘的信息
string hardNumber = "";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
try
{
foreach (ManagementObject mo in moc1)
{
hardNumber = (string)mo.Properties["Model"].Value;
this.listBox1.Items.Add(hardNumber);//there
}
}
catch
{
}
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
try
{
foreach (ManagementObject mo in moc1)
{
if((string)mo.Properties["DeviceID"] ==@"\\.\PHYSICALDRIVE0")
{
hardNumber = (string)mo.Properties["Model"].Value;
break;
}
}
MessageBox.Show(hardNumber);
}
catch
{
}
string hardNumber = "";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
try
{
foreach (ManagementObject mo in moc1)
{
if((string)mo.Properties["DeviceID"] ==@"\\.\PHYSICALDRIVE0")
{
hardNumber = (string)mo.Properties["Model"].Value;
break;
}
}
MessageBox.Show(hardNumber);
}
catch
{
}
对不起呀,可是这里报错,“无法将、、、类型转化为string类型”,把前面的string去掉,后面换成
if(mo.Properties["DeviceID"].Tostring() ==@"\\.\PHYSICALDRIVE0") ,就什么也获得不了,高手再指教,谢谢
string hardNumber = "";
ManagementClass cimobject1 = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc1 = cimobject1.GetInstances();
try
{
foreach (ManagementObject mo in moc1)
{
if((string)mo.Properties["DeviceID"].Value ==@"\\.\PHYSICALDRIVE0")
{
hardNumber = (string)mo.Properties["Model"].Value;
break;
}
}
MessageBox.Show(hardNumber);
}
catch
{
}
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("Select " + sInfoType + " From " + sWin32_Database);
string sResult = "";
foreach (ManagementObject mo in searcher.Get())
{
sResult = mo[sInfoType].ToString().Trim();
}
return sResult;
}
catch
{
return "";
}
}
//获取主板序列号
public string GetBIOSSerialNumber()
{
return GetWMIInfo("SerialNumber", "Win32_BIOS");
} //获取CPU序列号
public string GetCPUSerialNumber()
{
return GetWMIInfo("ProcessorId", "Win32_Processor");
} //获取硬盘序列号
public string GetHardDiskSerialNumber()
{
return GetWMIInfo("SerialNumber", "Win32_PhysicalMedia");
} //获取网卡地址
public string GetNetCardMACAddress()
{
return GetWMIInfo("MACAddress", "Win32_NetworkAdapter WHERE ((MACAddress Is Not NULL) AND (Manufacturer <> 'Microsoft'))");
}