求助:获取硬盘序列号出现的问题(附源码)

chenpeng1979 2010-11-23 09:26:13
使用在网上搜到的关于通过WMI获取硬盘序列号的方法,自己在VB.NET上试了,可发现无论使用哪一台机器都显示同一个序列号,这这么能程序唯一的序列号呢?我显示的序列号为:4038192048,各位能帮忙看看是这么回事吗!
以下为网上看到的源码:
Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")

Dim Uint32 As UInt32

For Each cmicWmiObj As ManagementObject In cmicWmi.Get


Uint32 = cmicWmiObj("signature")


Next


TextBox1.Text = Uint32.ToString

首先,引用System.Management;然后在代码中Imports System.Management
...全文
135 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
allanli 2010-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 chenpeng1979 的回复:]

那“KHDiskSerialNumber”应该定义为什么类型?好像代码中没申明啊!
[/Quote]


我的函数名称,呵呵,String就可以了
hzybc 2010-11-24
  • 打赏
  • 举报
回复
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
' ListBox1.Items.Clear()
Try
'Dim cmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
Dim CmicWmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive")
Dim Uint32 As Long = 0
For Each cmicWmiObj As Management.ManagementObject In CmicWmi.Get
' Uint32 = cmicWmiObj("signature") 'win2000 下不能用
' Uint32 = cmicWmiObj("HardID") 'win2000 下不能用
ListBox1.Items.Add(cmicWmiObj("PNPDeviceID")) '可用,但不确切
' ListBox1.Items.Add(cmicWmiObj("DeviceID"))
TextBox1.Text = cmicWmiObj("PNPDeviceID")
Next
Catch ex As Exception
MsgBox(ex.ToString)
Exit Sub
End Try
End Sub
chenpeng1979 2010-11-24
  • 打赏
  • 举报
回复
问题按照1楼的解决了,谢谢大家了!
chenpeng1979 2010-11-23
  • 打赏
  • 举报
回复
那“KHDiskSerialNumber”应该定义为什么类型?好像代码中没申明啊!
allanli 2010-11-23
  • 打赏
  • 举报
回复
Dim searcher As New Management.ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia")
Dim mobj As Management.ManagementObject

For Each mobj In searcher.Get()
KHDiskSerialNumber = mobj("SerialNumber")
If KHDiskSerialNumber <> Nothing Then
Exit For
End If
Next

16,556

社区成员

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

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