读取硬盘序列号的3种常见方式...收集一下测试结果...

wwh999 2010-11-23 12:32:26
看了一些读取硬盘序列号的贴子,并在实际工作中做了应用,但发现了一些问题:
??? 不同OS,不同电脑(笔记本/台式机),不同类型硬盘 得到的结果不太相同。

所以做了一个DEMO,希望大家能贴回你的测试结果,以便于为后面有类似需要的朋友提供参考。
搜集得差不多之后,会在贴子末尾做个总结。

测试Demo地址:
www.cbrj.net/download/GetHardID.rar

说明:测试DEMO中用了3种方式来获得硬盘序列号:
1.WMI-->(SELECT * FROM Win32_DiskDrive+signature属性)
2.WMI-->(Win32_PhysicalMedia+SerialNumber属性)
3.P/Invoke

电脑:台式机/笔记本
硬盘:IDE/SATA/SCSI
OS :9x/2k/xp/2003/vista/win7
测试结果:
-------------------------------------------------
...全文
1038 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingerWeiWei 2011-08-15
  • 打赏
  • 举报
回复
楼主贴的测试demo网址失效了,能不能发一份到我邮箱呢?我邮箱是809674045@qq.com。谢谢啦。
KingerWeiWei 2011-08-15
  • 打赏
  • 举报
回复
楼主贴的测试demo网址失效了,能不能发一份到我邮箱呢?我邮箱是809674045@qq.com。谢谢啦。
wwh999 2010-12-22
  • 打赏
  • 举报
回复
结贴散分。
tongfeng1981 2010-12-06
  • 打赏
  • 举报
回复
vb 以前写过
wwh999 2010-12-05
  • 打赏
  • 举报
回复
上面3种方法都没做错误处理的。按现在掌握的情况,却只有在2的情况下报错。
这可能是:使用2的方法WMI调用,而需要的WMI Windows服务可能没有启用。
无影追风 2010-12-01
  • 打赏
  • 举报
回复
电脑类型:笔记本
操作系统:WINXP SP3
硬盘接口:SATA

测试结果:
方法一:0
方法二:出错,错误信息在下方
方法三:WD-WXJ0EB9JM028

错误信息:
************** 异常文本 **************
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 j.HZvxoFKY6()
在 j.xXybuo68J(Object , EventArgs )
在 System.Windows.Forms.Control.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnClick(EventArgs e)
在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
在 System.Windows.Forms.Control.WndProc(Message& m)
在 System.Windows.Forms.ButtonBase.WndProc(Message& m)
在 System.Windows.Forms.Button.WndProc(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
QQRN 2010-11-27
  • 打赏
  • 举报
回复
台式机
挂了3硬盘,引导盘是IDE接口
winxp

1.760720151
2.System.NullReferenceException: 未将对象引用设置到对象的实例。
3.S08BJ1NA141566
wwh999 2010-11-26
  • 打赏
  • 举报
回复
目前的睛况:
1.有为0的情况 2.有出错的情况 (这可能与OS是否开启Wmi服务有关)
3.目前一直比较正常,不需要Wmi服务。
继续收集...
yanlongwuhui 2010-11-26
  • 打赏
  • 举报
回复
电脑:Sony VGN-S56C/B
硬盘:SAMSUNG HM160HI
OS : Winxp
测试结果:
------------------------------------------------------------------------------
1.0
2.出错,弹出错误框 。
3.S1PNJ9GZ600124
wwh999 2010-11-24
  • 打赏
  • 举报
回复
都没有做错误处理的,目的是为了验证它们的可靠性;
2是使用WMI的Win32_PhysicalMedia+SerialNumber属性。 目前你的一个报错出现...呵,谢谢。
tercelstar 2010-11-23
  • 打赏
  • 举报
回复
这个最好用c++或者C来实现,如果用C#,最好是获得MAC。获取硬盘序列号,需要调用API,底层点的语言性能比较好
wwh999 2010-11-23
  • 打赏
  • 举报
回复
先贴一下我的测试结果:

电脑:台式机
硬盘:SATA
OS : WinXp
测试结果:
------------------------------------------------------------------------------
1.125765503 (这个反应最慢)
2.5QM0TYLV
3.5QM0TYLV
whrspsoft3723 2010-11-23
  • 打赏
  • 举报
回复
我的测试结果:

电脑:dell 1420
硬盘:SATA ahci
OS : Win7 X86
测试结果:
------------------------------------------------------------------------------
1.0
2.出错,弹出错误框 。
3.WD-WXE108W67199

为什么会出错呢?
wwh999 2010-11-23
  • 打赏
  • 举报
回复
to: chenpeng1979
WMI的方式确实...我在一用户的机器上也发现这种情况。

继续等待收集。
subxli 2010-11-23
  • 打赏
  • 举报
回复
C# 以前也写过
chenpeng1979 2010-11-23
  • 打赏
  • 举报
回复
电脑:台式机
硬盘:SATA
OS : WinXp
测试结果:
1.0(很奇怪为什么会是0)
2.WD-WMAM9F814945
3.WD-WMAM9F814945

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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