vb.net获取硬盘序号 vbnet获取当前目录下文件名

VB获取电脑机器码很难达到你vb.net获取硬盘序号的要求的,VB好像是获取不到硬盘的物理序列号的,只能获取到某一个分区的序列号.不过可以调用其它的程序写的获取硬盘物理序列号的dll来获取,CPU的序列号vb.net获取硬盘序号我用的是wmi.VB本来对底层方面就不是很好
引用api获得硬盘序列号
Private Declare Function MymachineC 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()
Dim AA, 硬盘序列号, Maxlen, Sysflag As Long: Dim VolName, FsysName As String
AA = MymachineC("c:\", VolName, 256, 硬盘序列号, Maxlen, Sysflag, FsysName, 256)
msgbox "C硬盘序列号-机器码啦-(16制): "Hex(硬盘序列号)
End Sub
win7下vb.net 如何获取硬盘序列号Private Function 硬盘序列号() As String
Try
Dim myInfo As Microsoft.Win32.RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey("HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 1\Target Id 0\Logical Unit Id 0")
硬盘序列号 = Trim(myInfo.GetValue("SerialNumber"))
Catch
Try
Dim myInfo As Microsoft.Win32.RegistryKey = My.Computer.Registry.LocalMachine.OpenSubKey("HARDWARE\DEVICEMAP\Scsi\Scsi Port 1\Scsi Bus 1\Target Id 0\Logical Unit Id 0")
硬盘序列号 = Trim(myInfo.GetValue("SerialNumber"))
Catch
硬盘序列号 = ""
End Try
End Try
End Function
试下,如果返回为空,则表示失败 。
在本机win8win8.1有效,不过好像在有些机器上没用 。
vb中怎样获得硬盘序列号?上面的硬盘序列号都是逻辑盘序列号
每次格式化时都会改变而且很容易更改
你需要的应是物理序列号,是硬盘出厂时固化的
全球唯一的十位字符
网上有人编好的getdiskinfo
好像vsit不能用
【vb.net获取硬盘序号 vbnet获取当前目录下文件名】或用WMI:Win32_PhysicalMedia
不过用在vsit里得出的是20位的16进制字符串
你要设法检测与转换
我现在是把多种方法组合起来用
WMI功能比较强但初始化比较慢
我还用汇编试过,快不过不太稳定
例程我就不提供了 , 自己去搜索一下 。
关于vb.net获取硬盘序号和vbnet获取当前目录下文件名的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读