在尊重软件著作权的时代,电子注册版软件的应用也越来越广。它的出现使用户对程序中未受限制的功能有了一定了解,起到了推广和传播作用,同时也很好地保护了制作人的切身利益。那么,我们如何制作一个电子注册版软件呢?
经过摸索,笔者利用VB也简单地制作了一个电子注册版软件。
设计原理
利用API中的“GetVolumeInformation”函数提取使用者机器的硬盘序列号为特征码,注册时提交此码,经过软件著作权人加以运算,给出注册码,最后软件使用人输入注册码完成整个注册过程(为使说明简单,本例中以特征码减101做为注册码)。
新建一模块文件
新建一模块文件,并将如下声明的语句和常量添加到Module1.Bas模块中:
DeclareFunctionGetVolumeInformationLib”kernel32″Alias”GetVolumeInformationA”
(ByVallpRootPathNameAsString,ByVallpVolumeNameBufferAsString,ByVal
nVolumeNameSizeAsLong,lpVolumeSerialNumberAsLong,lpMaximumComponentLengthAs
Long,lpFileSystemFlagsAsLong,ByVallpFileSystemNameBufferAsString,ByVal
nFileSystemNameSizeAsLong)AsLong
GlobalGetValAsLong
编程时需注意的是要将声明语句写在同一行中。
窗体设置
在Form1上添加2个文本框,Name属性分别设置为Text1、Text2;再添加1个按钮,Name属性设置为Command1。
添加代码
将如下程序代码添加到Form1的Form1_Load事件中:
PrivateSubForm_Load()
DimTempStr1AsString*256
DimTempStr2AsString*256
DimTempLon1AsLong
DimTempLon2AsLong
………
‘读取是否注册的信息,如何控制这里不再说明
………
CallGetVolumeInformation(“C:”,TempStr1,256,GetVal,TempLon1,TempLon2,TempStr2,256)
Text1.Text=GetVal‘提取本机C盘的序列号至文本框一
EndSub
将如下程序代码添加到Command1的Command1_Click事件中:
PrivateSubCommand1_Click()
IfText2〈〉CStr(GetVal)Then
MsgBox”注册码不正确,请认真检查输入是否正确。”
Else
MsgBox”你已经成功注册,请重新启动本软件。”
………
(将正确注册的信息写入,使软件功能以后不受限制。具体方法依个人爱好进行设置。)
………
EndIf
EndSub
至此,我们可以运行一下程序。你会发现我们已经简单地实现了利用硬盘序列号制作电子注册版软件的功能。->