积极答复者
获取硬盘序号,调试时可以,发布不行

问题
-
使用如下代码获取硬盘序号,调试的时候是可以的,可是发布的时候,就不行了,获取不到硬盘序号,请问如何解决,是不是权限问题,如果是有什么办法可以解决,谢谢
public String GetHardDiskID()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_PhysicalMedia");
String strHardDiskID = null;
foreach (ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
return strHardDiskID;
}
catch
{
return "";
}
}
答案
全部回复
-
我在网上查了下有WIN32_DiskDrive,这个我参考了MSDN上的介绍,也确实有SerialNumber这个属性,但是我在C#下面调用的时候提示找不到
写法应该是没有问题的,因为我获取其他几个属性都是可以的没有问题,就这个找不到,请问如何解决
或者能提供一个能在C#下获取SerialNumber的方法,谢谢!
- 已合并 Sheng Jiang 蒋晟Moderator 2010年8月9日 3:50
-
http://www.pconline.com.cn/pcjob/process/other/others/0410/471619.html
//取第一块硬盘编号
public String GetHardDiskID()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
String strHardDiskID = null ;
foreach(ManagementObject mo in searcher.Get())
{
strHardDiskID = mo["SerialNumber"].ToString().Trim();
break;
}
return strHardDiskID ;
}
catch
{
return "";
}
}//end- 已建议为答案 jinxuliang 2010年7月29日 9:43
- 已标记为答案 燕过无声 2010年8月2日 3:55
-
-
我用 ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_PhysicalMedia");
来获取硬盘序列号,现在发现一个问题我在win7下获取的结果和XP下获取的不同,请问这是怎么回事!
- 已合并 Sheng Jiang 蒋晟Moderator 2010年8月9日 21:17 同样的权限问题
-
你好!
尝试一下这个方法:
String HDid;
ManagementClass cimobject = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection moc = cimobject.GetInstances();
foreach(ManagementObject mo in moc)
{
HDid = (string)mo.Properties["Model"].Value;
MessageBox.Show(HDid );
}
周雪峰
帮助大家解决问题咯~~小站:http://www.cnblogs.com/knightluffy/