vb中怎样获得硬盘序列号?

如题我是想用来做注册程序的... 如题
我是想用来做注册程序的
展开
 我来答
newkedison
2008-07-10 · TA获得超过734个赞
知道小有建树答主
回答量:234
采纳率:0%
帮助的人:413万
展开全部
Private Declare Function 获得硬盘序列号 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
Private Sub Form_Load()
On Error GoTo Err_Form_Load
Dim AA, 硬盘序列号, Maxlen, Sysflag As Long: Dim VolName, FsysName As String
AA = 获得硬盘序列号("c:\", VolName, 256, 硬盘序列号, Maxlen, Sysflag, FsysName, 256)
Form1.Caption = "C硬盘序列号(16制): " & Hex(硬盘序列号)
Exit Sub
Err_Form_Load:
End Sub

参考资料: http://zhidao.baidu.com/question/31294320.html

兰馨谷
推荐于2017-09-05 · TA获得超过149个赞
知道小有建树答主
回答量:361
采纳率:0%
帮助的人:399万
展开全部
上面的硬盘序列号都是逻辑盘序列号
每次格式化时都会改变而且很容易更改
你需要的应是物理序列号,是硬盘出厂时固化的
全球唯一的十位字符
网上有人编好的getdiskinfo
好像vsit不能用
或用WMI:Win32_PhysicalMedia
不过用在vsit里得出的是20位的16进制字符串
你要设法检测与转换
我现在是把多种方法组合起来用
WMI功能比较强但初始化比较慢
我还用汇编试过,快不过不太稳定
例程我就不提供了,自己去搜索一下。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nefu_20061617
2008-07-11 · TA获得超过2342个赞
知道大有可为答主
回答量:1064
采纳率:72%
帮助的人:1479万
展开全部
Private Sub Form_Load()
Set FSO = CreateObject("Scripting.FileSystemObject")
Set d = FSO.getdrive("C:")
MsgBox "C盘的序列号是(16进制): " & Hex(d.SerialNumber)
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式