regid.bas

来自「移动」· BAS 代码 · 共 54 行

BAS
54
字号
Attribute VB_Name = "regid0"
Public 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
'得到某一磁盘分区的信息,如C:

'窗体代码如下:
Option Explicit
Private Regid, Localid As Long

Private Sub CmdLocalID_Click()
  '根据C盘序列号得到原ID
  Dim Driver, VolName, Fsys As String
  Dim volNumber, MCM, FSF As Long
  Driver = "c:\"
  Dim res As Long
  res = GetVolumeInformation(Driver, VolName, 127, volNumber, MCM, FSF, Fsys, 127)
  'volNumber是C盘序列号
  Localid = volNumber / 2 + 123456789
  reghj.Text1.Text = Localid
End Sub

Private Sub CmdRegID_Click()
  '根据原ID算出注册ID
 'If IsNumeric(Text1.Text) Then
   ' Regid = CLng(Text1.Text) / 4 * 3 + 987654321
 ' Else
    'error
 ' End If
  'Text2.Text = Regid
End Sub

Private Sub CmndCheckID_Click()
  '验证注册ID
  Dim Driver, VolName, Fsys As String
  Dim volNumber, MCM, FSF As Long
  Driver = "c:\"
  Dim res As Long
  res = GetVolumeInformation(Driver, VolName, 127, volNumber, MCM, FSF, Fsys, 127)
  Dim Tid As Long
  Tid = volNumber / 2 + 123456789
  If Regid = Tid / 4 * 3 + 987654321 Then
    MsgBox "正确!"
  Else
    MsgBox "错误!"
  End If
End Sub



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?