在尊重軟體著作權的時代,電子註冊版軟體的應用也越來越廣。它的出現使用戶對程式中未受限制的功能有了一定了解,起到了推廣和傳播作用,同時也很好地保護了製作人的切身利益。那麼,我們要如何製作一個電子註冊版軟體呢?
經過摸索,筆者利用VB也簡單地製作了一個電子註冊版軟體。
設計原理
利用API中的「GetVolumeInformation」函數提取使用者機器的硬碟序號為特徵碼,註冊時提交此碼,經過軟體著作權人加以運算,給出註冊碼,最後軟體使用人輸入註冊碼完成整個註冊過程(為使說明簡單,本例以特徵碼減101做為註冊碼)。
新建一模組文件
新建一模組文件,並將如下聲明的語句和常數加入Module1.Bas模組中:
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
Global GetVal As Long
程式設計時需注意的是將聲明語句寫在同一行中。
窗體設定
在Form1上新增2個文字框,Name屬性分別設定為Text1、Text2;再新增1個按鈕,Name屬性設定為Command1。
新增程式碼
將如下程式碼加入Form1的Form1_Load事件:
Private Sub Form_Load()
Dim TempStr1 As String * 256
Dim TempStr2 As String * 256
Dim TempLon1 As Long
Dim TempLon2 As Long
………
'讀取是否註冊的信息,如何控制這裡不再說明
………
Call GetVolumeInformation("C:", TempStr1, 256, GetVal, TempLon1, TempLon2, TempStr2, 256)
Text1.Text = GetVal '將本機C盤的序號擷取至文字方塊一
End Sub
將如下程式碼加入Command1的Command1_Click事件中:
Private Sub Command1_Click()
If Text2 〈〉 CStr(GetVal) Then
MsgBox "註冊碼不正確,請認真檢查輸入是否正確。"
Else
MsgBox "你已經成功註冊,請重新啟動本軟體。"
………
(將正確註冊的資訊寫入,使軟體功能以後不受限制。具體方法依個人嗜好設定。)
………
End If
End Sub
至此,我們可以運行一下程式。你會發現我們已經簡單地實現了利用硬碟序號製作電子註冊版軟體的功能。