用VB为软件增加注册功能

编程 专栏收录该内容
54 篇文章 0 订阅
用VB为软件增加注册功能
http://www.tongyi.net  作者:郭瑞刚   出处:china.com    点击:459  

在尊重软件著作权的时代,电子注册版软件的应用也越来越广。它的出现使用户对程序中未受限制的功能有了一定了解,起到了推广和传播作用,同时也很好地保护了制作人的切身利益。那么,我们如何制作一个电子注册版软件呢? 

  经过摸索,笔者利用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 

  至此,我们可以运行一下程序。你会发现我们已经简单地实现了利用硬盘序列号制作电子注册版软件的功能。

  • 0
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

Private Sub Command1_Click()'试 Form1.Hide Form2.Show End Sub: `+ B0 V9 M6 I5 n% G8 `7 C& n Private Sub Form_Load() '----------------------------------------------------------------------* Text2.Text = pereg1.GetMacHdID$ N- A' r4 f. U, F, L) b '关键代码1:检测硬件“机器码”( c( A0 p- f1 g d) A9 q1 v '使方法:pereg1.GetMacHdID '更改属性页里的“混合密钥”,硬件机器码、序列号、注册码将全部改变 '----------------------------------------------------------------------* If Not pereg1.PeRegOK Then '关键代码2:检测软件序列号、注册码是否正确 '使方法:pereg1.PeRegOK3 P1 J* h; {- e G5 ]8 Z '----------------------------------------------------------------------* Form2.Label1.Caption = "向您提示:软件没有注册!"# {; f8 E& Y% ^7 Q% ] Else- N1 R# Z' H9 @) t6 e Form2.Label1.Caption = "感谢您的注册!". V/ y3 T6 F& U7 @- V* C# N Form1.Hide Form2.Show End If End Sub2 a, ~' m$ g7 i- Z$ P# f% Q Private Sub Command2_Click()'开始验证 0 O, ]. |7 a5 Y3 {; y '----------------------------------------------------------------------* If pereg1.SaveCode(Text5.Text, Text3.Text, Text4.Text) Then O" z/ x w1 I6 I '关键代码3:检测输入序列号、激活码 '使方法:pereg1.SaveCode(户名,序列号,注册码)8 U. r; T# ~) n5 u '户名可任意输入字符串,与硬件代码无关 '----------------------------------------------------------------------* Form1.Hide Form2.Label1.Caption = "感谢您的注册!" Form2.Show End If End Sub& k" P) i' k$ L+ n ! R* l" e& q7 r: ?4 h$ T) y VB版的完全免费的软件保护控件(ocx),可以轻松让你的软件具有注册功能,可以关联硬盘、CPU,U盘(开发中),有代码少、加密强度大以及使非常方便的特点,欢迎大家使.
©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值