注册 登录
编程论坛 VB6论坛

请教:vb编程如何检测win7、win8笔记本(非IDE接口)的硬盘序列号?

tglyq 发布于 2013-05-19 17:27, 840 次点击
本人从网上下载并使用了vb检测硬盘序列号的源码,在台式机(ide接口)都能出来结果,但在win7、win8笔记本上无法显示,请各位大侠能提供一段代码,能够在不同接口下都显示检测出硬盘序列号。本人想用于做注册码。谢谢!

[ 本帖最后由 tglyq 于 2013-5-19 17:40 编辑 ]
5 回复
#2
lowxiong2013-05-19 18:46
没有win7、win8的实验环境,我笔记本肯定是ata接口的,没碰到过有硬盘接口的问题。我平时是用api解决的,代码如下:
'***************************************************************************
Private Declare Function GetVolumeInformation Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long
Dim a As String, sn As Long, i As Long
i = GetVolumeInformation("c:\", a, 0, sn, 0, 0, a, 0)
if i<>0 then msgbox "硬盘系列号为:" & hex(sn)     '用十六进制显示硬盘系列号
#3
tglyq2013-05-19 19:15
按照你这样在笔记本的win7、win8下肯定不行。xp下可以。谢谢!
#4
tglyq2013-05-19 19:19
回复 2楼 lowxiong
按照你这样在笔记本的win7、win8下肯定不行。xp下可以。谢谢!
#5
bczgvip2013-05-19 23:15
确定不是权限问题么?
自己看看错误后的返回值吧。
#6
风吹过b2013-05-20 11:09
lowxiong 2楼的代码。

测试,WIN7 有用。
VB6精减版(非安装)+WIN7 测试。
1