用VB来实现软件的注册保护源代码
用VB来实现软件的注册保护
曾经在《电脑报》上看到一篇介绍通过建立数据库来实现软件的试用期的文章。但那种方法有点复杂。下面我用建立一个文件的方法来实现软件的注册保护。以VB 6.0为开发环境,以限制未注册软件的使用次数为目的,我们来实现实现。效果如图:
1> 建立一工程,两个窗体form1,form2。把form1做为软件的主窗口,form2作为软件的注册窗口。设置form1的Name和Caption属性均为mainfrm; form2的Name和Caption属性
-none, Width为5000, Height为2500,StarUpPosition为2-屏幕中均为regfrm, Borderstyle为0
心。
2> 在regfrm中加入一个Label,一个TextBox,两个CommandButton。其中label1的Caption属性为请输入注册码:,text1的text属性置空,PasswordChar为 * ,TabIndex为0;Command1的Caption属性为确定,Default属性为true,command2的Caption属性为取消,Cancel属性为true
3> 在mainfrm中写入下面的代码:
Dim times As string ‘声明全局变量times,类型为字符型
Private Sub Form_Load()
If Dir("c:\windows\system\goodday.hcy") <> "" Then ‘如果\system\下存在goodday.hcy表明已注册
Exit Sub ‘结束load事件,即显示mainfrm Else ‘否则
mainfrm.Hide ‘隐藏mainfrm
regfrm.Show ‘加载显示注册窗口regfrm End If
End Sub
4> 在regfrm中写入如下代码:
Private Sub Command1_Click() ‘单击”确定”按钮时 If Text1.Text = "hcy2001" Then ‘如果输入的注册码是hcy2001,则 Open "c:\windows\system\goodday.hcy" For Output As #1 ‘在\system\下新建文件goodday.hcy Write#1,"ImportantFile,do'ntdelete!"&Chr(10)&"$%^$*8^&6&*^4%$$^45##%$" ‘写入数据 Close #1 ‘关闭文件通道#1 Unload regfrm ‘卸载regfrm mainfrm.Show
Else ‘否则
MsgBox "你输入的注册码不正确,请重输", , "输入核对" ‘弹出消息框 Text1.Text = "" ‘清空text1 Text1.SetFocus ‘使焦点停留在text1中 End If
End Sub
Private Sub Command2_Click() ‘单击”取消”按钮时
If Dir("c:\windows\system\times.hcy") = "" Then ‘如果不存在times.hcy文件,则 Open "c:\windows\system\times.hcy" For Output As #2 ‘在\system\中新建一个文件times.hcy Write #2, 0 ‘写入初始数据”0”
Close #2
End If
Open "c:\windows\system\times.hcy" For Input As #1 ‘以只读方式打开文件times.hcy Input #1, times ‘从文件中读取数据,并赋给全局变量times t%= Val(times) ‘将times的值转为整型格式并赋给整型变量t If t%>= 5 Then ‘限制未注册用户的使用次数为5次 r% = MsgBox("试用期已到,请E-mail作者:" & Chr(10) & "redhcy@sina.com", vbOKOnly, "")
If r% = 1 Then ‘即用户按了消息框的”确定”按纽
Unload mainfrm
Unload regfrm
End If
Exit Sub
Else
MsgBox "你还有" & Str$(4 - t) & "次使用机会,请注册以获得长久使用本软件的权利", vbCritical, "请注册" ‘消息框,显示还能使用的次数 mainfrm.Show
End If
Close #1
times = Str$(Val(times) + 1) ‘将变量times的整形值+1后转为字符重赋给变量times Open "c:\windows\system\times.hcy" For Output As #1
Write #1, times ‘向times.hcy写入times的新值
Close #1
Unload regfrm
End Sub
好了,按F5运行看看~如果用户输入了注册码hcy2001,则下次软件运行时不再出现注册窗口,否则,用户只能使用5次,且软件每次运行都要出现注册窗口。当然,用这种方法同样能限制软件的使用时间,首先建立一个文件读取软件第一次运行的系统日期…..这里就不多说了。此外,还可以用这种方法保存用户的设置,每次软件运行时都自动读取并按之设置。这样一来,你的软件就更具“人性化”了。