有点小bug,将代码改进了一下。
Private Sub Form_Open(Cancel As Integer)
Dim i As Byte
On Error GoTo ww:
If CurrentProject.AllForms(Me.Form.Name).Properties("zc") = False Then '若未注册
Me.注册.Visible = True
i = CurrentProject.AllForms(Me.Form.Name).Properties("cs")
AddCustomFormProperty Me.Form.Name, "cs", i + 1
If i + 1 >= 30 Then '软件发行时发行者要点“初始化”按钮,将试用次数归零的,因此不会出现尚可使用次数为负数的情况,但为安全起见,还是加个大于号吧。
If MsgBox("试用期到!请注册使用", vbOKCancel) = vbCancel Then Quit
注册_Click
Exit Sub
End If
MsgBox "您还有" & 30 - i & "次试用的机会,请您及时注册使用!"
Exit Sub
Else
Exit Sub ’较大bug,系统检测为注册版时应退出代码执行,而不再执行后面的退出程序的语句。
End If
ww:
MsgBox "出现异常错误": Quit
End Sub
Private Sub 发行前的初始化_Click()
AddCustomFormProperty Me.Form.Name, "cs", 1
AddCustomFormProperty Me.Form.Name, "zc", False
End Sub
Private Sub 注册_Click()
Dim cc As Byte
cc = 0
aa:
If InputBox("请输入注册码", "注册") = "123456" Then '注册码的设计另外考虑
AddCustomFormProperty Me.Form.Name, "zc", True
MsgBox "注册成功"
DoCmd.GoToControl "命令5" ‘系统无法隐藏有焦点的控件,因此要将焦点转移。
Me.注册.Visible = False
Else
If i = 5 Then
MsgBox "您测试注册码的次数太多,请与作者联系注册码事宜": Quit
End If
If MsgBox("注册失败,是否重新注册?", vbOKCancel, "提示") = vbCancel Then Quit
i = i + 1: GoTo aa:
End If
End Sub
' 将自定义属性添加到与 AccessObject 对象相关的 accessObjectProperties 集合中。
Sub AddCustomFormProperty(strFormName As String, strPropName As String, varPropValue As Variant)
CurrentProject.AllForms(strFormName).Properties.Add strPropName, varPropValue
End Sub
[此贴子已经被作者于2006-4-30 15:05:10编辑过]
|