在vb中如何得到唯一id,用什么函数?急在线等待
在vb中如何得到唯一id,用什么函数 问题点数:100、回复次数:10Top
1 楼litaoa(青云)回复于 2003-09-04 19:15:34 得分 10
唯一id????是指硬盘的还CPU的?Top
2 楼rainstormmaster(暴风雨 v2.0)回复于 2003-09-04 19:20:58 得分 40
用API函数GetVolumeInformation:
模块:
Option Explicit
Public Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Public Const MAX_FILENAME_LEN = 256
Public Function DriveSerial(ByVal sDrv As String) As Long
Dim RetVal As Long
Dim str As String * MAX_FILENAME_LEN
Dim str2 As String * MAX_FILENAME_LEN
Dim a As Long
Dim b As Long
Call GetVolumeInformation(sDrv & ":\", str, MAX_FILENAME_LEN, RetVal, a, b, str2, MAX_FILENAME_LEN)
DriveSerial = RetVal
End Function
窗体:
Option Explicit
Private Sub Command1_Click()
MsgBox DriveSerial(Left(Drive1.Drive, 1))
End Sub
Top
3 楼rainstormmaster(暴风雨 v2.0)回复于 2003-09-04 19:22:47 得分 10
上面的得到的是硬盘的序列号Top
4 楼rainstormmaster(暴风雨 v2.0)回复于 2003-09-04 19:25:27 得分 10
序列号是写在磁盘的引导区的,不同的文件系统略有不同。可以通过直接读取磁盘的相关区域来修改,而不需要格式化。对于FAT分区,可以使用DOS中断Int 21h的440DH功能的46H子功能来设置序列号。这在VB中不容易实现,但在其它软件中可以实现。所以序列号作为加密的依据不是特可靠。但现在的确有很多软件都利用序列号来生成注册号,因为毕竟大多数人都无法修改序列号。
Top
5 楼WQ771211(SyanSea)回复于 2003-09-04 19:27:47 得分 5
网卡号+时间+硬盘序列号+随机数Top
6 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2003-09-04 19:59:15 得分 5
可以通过创建Guid的方法来创建唯一的ID:
http://www.applevb.com/sourcecode/guid.zipTop
7 楼shawls(VB Fan)(QQ:9181729)回复于 2003-09-04 20:02:08 得分 5
get the guid,4x128Top
8 楼rainstormmaster(暴风雨 v2.0)回复于 2003-09-04 20:34:12 得分 10
http://vip.6to23.com/NowCan1/tech/diskid.htmTop
9 楼5653325(等待开刃的刀)回复于 2003-09-04 21:30:49 得分 5
一般都是用硬件得唯一序列号进行换算得到得吧Top
10 楼KJ_Wang(Java Every Day)回复于 2003-09-04 23:08:13 得分 0
什么样的ID?Top




