Hallo Dieter,
ich versuche z.Zt. mir eine Function für eine Demoversion zu erstellen, leider haberts jetzt n bisschen.
Der Ablauf soll wie folgt geschehen:
1. Testzeit 30 Tage
2. Prüfen ob Systemdatum umgestellt wurde, wenn ja speeren und Registrierformular anzeigen.
3. Nach 30 Tagen Testzeit Anwendung speeren und Registrierformular anzeigen.
4. Prüfen ob anwendung registriert, wenn ja HauptForm anzeigen, wenn nein Testtage prüfen.
Bisher habe ich folgenden Code, der meiner Meinung nach aber etwas verwurstet ist und ich nicht so richtig weiss ob er auch korrekt ist.
Public Sub Main()
' Initialisierung
sevLock_Init "Max Mustermann", "Mustermann GbR", GetLicKey()
' eindutige AppID
sevLock_StartUp "MyAppID"
' Prüfen, ob es sich bei der auf dem System vorhandenen DLL
' um keine Wrapper-DLL handelt
If Not (sevLock_VerifyDLL() = GetVerifyKey()) Then
' Anwendung beenden, da ungültige DLL-Version
MsgBox "Ungültige sevLock.DLL !!!", vbOKOnly, ""
Exit Sub
End If
End Sub
Public Function TrialMode()
' eindutige AppID
Dim nResult As eErrorCode
Dim strText As String
strText = "Das Systemdatum wurde zurückgesetzt!" & vbCrLf & _
"Zum entsperren müssen Sie die" & _
"Anwendung freischalten!"
If Not (sevLock_VerifyDLL() = GetVerifyKey()) Then
' Anwendung beenden, da ungültige DLL-Version
MsgBox "Ungültige sevLock.DLL !!!", vbOKOnly, ""
Exit Function
End If
If Not sevLock_StartUp("MyAppID") Then
nResult = sevLock_LastErrorCode()
End If
' ACHTUNG! Systemdatum wurde umgestellt!
If nResult = ErrorCode_WrongDate Then
MsgBox strText, vbExclamation + vbOKOnly, ""
' jetzt Testversion sperren
sevLock_SetExpired 1
On Error Resume Next
frmRegistrierung.Show vbModal
Exit Function
End If
If sevLock_HasExpired() <> 0 Then
' Wenn die Zeit der Testzeit abgelaufen...
' Hier den Registrier-Dialog aufrufen
If MsgBox("Die Testzeit ist abgelaufen!" & vbCrLf & vbCrLf & _
"Möchten Sie jetzt die Vollversion registrieren?", vbYesNo + _
vbInformation, "") = vbYes Then
' Registrierformular öffnen
On Error Resume Next
frmRegistrierung.Show vbModal
End If
Exit Function
End If
If sevLock_IsRegistered() = 0 Then
If sevLock_HasExpired() = 0 And sevLock_DaysUsed() >= 30 Then
' Falls Anwendung an mind. 30 Tagen gestartet, Testzeit beenden
sevLock_SetExpired 1
Else
On Error Resume Next
frmHaupt.Show vbModal
End If
Else
On Error Resume Next
frmHaupt.Show vbModal
End If
End Function Ich glaube ich habe da zu viele If...Then... drin!
Wie kann man den Code am besten vereinfachen?
Gr Josch |