读普通硬盘通过ManagementObjectSearcher mc = new ManagementObjectSearcher
("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach (ManagementObject mo in mc.Get())
{
if (i++ == Index)
{
if(mo["SerialNumber"]!=null)
{
string a=mo["SerialNumber"].ToString().Trim();
textBox2.Text=a;
break;
}
else
{
textBox2.Text="None";
}
}
是可以的,但是读USB接口的移动硬盘就不行了,mo["SerialNumber"]为空,不知道是怎么回事?
有没有人知道啊?我知道有个软件“U盘检测器V5.0”可以实现这个功能望高手指教!!!
("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach (ManagementObject mo in mc.Get())
{
if (i++ == Index)
{
if(mo["SerialNumber"]!=null)
{
string a=mo["SerialNumber"].ToString().Trim();
textBox2.Text=a;
break;
}
else
{
textBox2.Text="None";
}
}
是可以的,但是读USB接口的移动硬盘就不行了,mo["SerialNumber"]为空,不知道是怎么回事?
有没有人知道啊?我知道有个软件“U盘检测器V5.0”可以实现这个功能望高手指教!!!
解决方案 »
- vs2008+c#+winfrom的程序发布问题,请前辈指点!小弟先感谢了!
- 空值对比,数据库中ws2m wd2m为smallint型,但是却出现null类型的值
- 串口如何接收返回的成功的字符串
- 我想做一个上传图片的功能 判断此图片是否存在
- Dropdownlist 样式问题
- (Ilist<a>)IList<b> 可以吗?
- 如何在table的<td>标签中动态加入控件?
- 如何实现统计图表?
- 对于在WebForm中使用JScript脚本的问题
- 请问大家,如何实现对键盘按下的事件捕捉? 高分(100)等待!
- 更改窗体的Text值是用什么事件呀?
- [求助]C# 中怎么让listview中的items具有ToolTip啊?
ManagementObjectSearcher mc1 = new ManagementObjectSearcher("SELECT * FROM Win32_DiskDriveToDiskPartition");
foreach (ManagementObject mo in mc1.Get())
{
//System.Console.WriteLine(mo["Dependent"].ToString() + mo["Antecedent"].ToString());
//Win32_DiskDrive
using(ManagementObject o1 = new ManagementObject(mo["Antecedent"].ToString()))
{
o1.Get(); if(o1["InterfaceType"].ToString().ToUpper() == "USB")
{
//Win32_DiskPartition
using(ManagementObject o2 = new ManagementObject(mo["Dependent"].ToString()))
{
o2.Get();
//System.Console.WriteLine(o["DeviceID"]);
deviceId = o2["DeviceID"].ToString();
break;
}
}
}
} if(deviceId == "")
{
System.Console.WriteLine("No USB interface disk has been found.");
}
else
{
ManagementObjectSearcher mc2 = new ManagementObjectSearcher("SELECT * FROM Win32_LogicalDiskToPartition");
foreach (ManagementObject mo in mc2.Get())
{
System.Console.WriteLine(mo["Dependent"].ToString() + mo["Antecedent"].ToString());
//Win32_DiskPartition
using(ManagementObject o1 = new ManagementObject(mo["Antecedent"].ToString()))
{
o1.Get();
if(o1["DeviceID"].ToString() == deviceId)
{
//Win32_LogicalDisk
using(ManagementObject o2 = new ManagementObject(mo["Dependent"].ToString()))
{
o2.Get();
System.Console.WriteLine("USB drive found:" + o2["DeviceID"]);
}
}
}
}
}