最后的白鸟及各高手请进,关于.net取得硬件序列号的问题

csharpboy 2002-08-19 05:54:18
在使用System.Management.ManagementObjectSearcher这个类时需要用WQL语言进行查询,如"select * from Win32_LogicalDisk","SELECT * FROM Win32_OperatingSystem"等等,有点像SQL,各位谁有这方面的资料,我如果要查询硬盘的序列号,语句要如何写。网卡序列号和主板序列号呢?
我用"select * from Win32_LogicalDisk"时,它查出的多个驱动器,包括软驱和光驱,可否象SQL加上where呢?还有这样查出时有多个分区,而每个分区的VolumeSerialNumber都不相同(),请高手指点
用"select SerialNumber from Win32_bios"时,取到的居然是空值,哎,急!!!!
...全文
64 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
csharpboy 2002-08-20
  • 打赏
  • 举报
回复
酷,不愧是微软的高手,谢了
freesoul_ms 2002-08-20
  • 打赏
  • 举报
回复
感谢您使用微软产品。

您当然可以在WQL中使用Where,详见“Querying with WQL”:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/querying_with_wql.asp
关于WMI各个Class的属性,请参阅:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/computer_system_hardware_classes.asp

要查阅硬盘的信息而不是各个分区的具体信息,您应该使用Win32_DiskDrive而不是Win32_LogicalDisk。
下面提供一段程序示例以供您参考:

ConnectionOptions oConn = new ConnectionOptions();
System.Management.ManagementScope oMs = new System.Management.ManagementScope("\\\\localhost", oConn);

System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery("select SerialNumber from Win32_BIOS ");
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs,oQuery);
ManagementObjectCollection oReturnCollection = oSearcher.Get();

foreach( ManagementObject oReturn in oReturnCollection )
{
this.textBox1.Text += "SerialNumber : " + oReturn["SerialNumber"].ToString();
}

您可以加以改动获取您感兴趣的信息。
希望能对您有所帮助!

======================
- 微软全球技术中心

本贴子仅供CSDN的用户作为参考信息使用。其内容不具备任何法律保障。您需要考虑到并承担使用此信息可能带来的风险。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
======================

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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