为什么Win32_PhysicalMedia和Win32_DiskDrive取不到硬盘的标示? 谢谢

javamy010 2013-01-24 06:21:08

private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show("硬盘:" + C());
MessageBox.Show("CPU:" + A());

}
static string C()
{
System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_PhysicalMedia");
//网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。 Win32_PhysicalMedia
System.Management.ManagementObjectCollection moc = mc.GetInstances();
if (moc.Count == 0)
{
mc = new System.Management.ManagementClass("Win32_DiskDrive");
//网上有提到,用Win32_DiskDrive,但是用Win32_DiskDrive获得的硬盘信息中并不包含SerialNumber属性。 Win32_PhysicalMedia
moc = mc.GetInstances();
}
string strID = "";
foreach (System.Management.ManagementObject mo in moc)
{
if (mo.Properties["SerialNumber"] != null
&& mo.Properties["SerialNumber"].Value != null)
{
strID += mo.Properties["SerialNumber"].Value.ToString();
}
break;
}
return strID.Trim();
}

以上代码在XP,WIN2008,WIN64可以正常
但是在Win2003取不到信息

谢谢
...全文
1225 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2013-01-24
  • 打赏
  • 举报
回复
http://www.codeproject.com/Articles/16941/Get-Physical-HDD-Serial-Number-without-WMI
javamy002 2013-01-24
  • 打赏
  • 举报
回复
引用 1 楼 caozhy 的回复:
和系统无关,和你的硬盘以及驱动有关。
那C#如何来取得硬盘的序列号啊? 谢谢
threenewbee 2013-01-24
  • 打赏
  • 举报
回复
和系统无关,和你的硬盘以及驱动有关。

110,525

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧