利用硬盤序列號計算軟件注冊碼

發表于:2007-07-01來源:作者:點擊數: 標簽:
利用硬盤序列號計算軟件注冊碼。 在模塊中加入下列聲明: Public Declare Function GetVolumeInformation Lib "kernel32" _ Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _ ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize

利用硬盤序列號計算軟件注冊碼。

在模塊中加入下列聲明:
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
  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

為便于演示,我在窗體上用了兩個文本框三個按鈕,請根據情況靈活使用,可以在用戶端算出原ID,發給你,你算出注冊ID再發給用戶,驗證當然是在用戶端啦。ID算法很簡單,只作示范。此注冊ID只能在這一臺機器上使用,對于非高手用戶來說是足夠啦。
注:如用戶格式化C:盤后需重新獲得ID。


原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97