Oppure

Loading
18/05/08 9:51
Gilean
Salve a tutti. Ho creato un piccolo programma in excel e vbs che chiede un codice per poter essere sbloccato, a partire da 5 codici iniziali. il problema e' che se si chiude la finestra e la riapro, le varabili da Codice1 a Codice 5 sono sempre le stesse (ed uso il random). sapreste aiutarmi? ecco il codice

Sub Workbook_Open()
        'Const CellaRegistrazione As Integer = 1
        'password di sicurezza
        Const PassWordSecurity As String = "homerjsi"
        'Stringa da trovare nel file di check per risultare registrato
        Const StringaVerifica As String = "rec_ok"
        Dim Paths As String
        ' percorso e nome del file di check
        Paths = "C:\Windows\System32\pac.txt"
        FileExists = EsisteFile(Paths)
        'vediamo se il file esiste
        If (FileExists = True) Then
            'Apriamo il nostro file spia
            Open Paths For Input As #1
            Input #1, Registrato
            Close #1
            If (Registrato = StringaVerifica) Then
                Exit Sub
            Else
VarInput:
                ' Generate random value between 1 and 6.
                 Dim LB As Integer

                Dim UB As Integer

                LB = 1

                UB = 50
                Randomize (Rnd())
                Dim Codice1 As Integer
                Dim Codice2 As Integer
                Dim Codice3 As Integer
                Dim Codice4 As Integer
                Dim Codice5 As Integer
                Codice1 = CInt(Rnd() * UB) + 1

                Codice2 = CInt(Rnd() * UB) + 1

                Codice3 = CInt(Rnd() * UB) + 1

                Codice4 = CInt(Rnd() * UB) + 1

                Codice5 = CInt(Rnd() * UB) + 1
                VariabileInput = InputBox("Codice di assistenza=" & Codice1 & "-" & Codice2 & "-" & Codice3 & "-" & Codice4 & "-" & Codice5 & "." & Space(20) & "Inserire codice di convalida.")
                Risultato1 = Abs(2 * Codice1 - Codice2 + 5 * (Codice3 * Codice4) - 4 * Codice5)
                Risultato2 = Abs(Codice2 + Codice1 + Codice3 - 2 * (Codice4 * 5 - 7 * Codice5) * 3)
                Risultato3 = Abs(Codice3 - Codice4 * Codice5 + 6 * (Codice1 + 1))
                Risultato4 = Abs(Codice4 + Codice5 - Codice1 + 2 * (Codice3 - Codice2))
                Risultato5 = Abs(Codice5 + Codice2 + 2 * Codice3 - 4 * Codice5)
                If (VariabileInput = (Risultato1 & "-" & Risultato2 & "-" & Risultato3 & "-" & Risultato4 & "-" & Risultato5) Or VariabileInput = PassWordSecurity) Then
                    MsgBox ("Il programma e' stato correttamente registrato, grazie")
                    ok = StringaVerifica
                    'apriamo il file spia
                    Open Paths For Output As #1
                    'marchiamo il file di testo come registrato
                    Print #1, ok
                    Close #1
                    Exit Sub
                Else
                    MsgBox ("Spiacente il codice e' errato, siete pregati di inserire il codice corretto, grazie")
                    Codice1 = CInt(Rnd() * UB) + 1

                    Codice2 = CInt(Rnd() * UB) + 1

                    Codice3 = CInt(Rnd() * UB) + 1
    
                    Codice4 = CInt(Rnd() * UB) + 1
    
                    Codice5 = CInt(Rnd() * UB) + 1
                    ActiveWindow.Close
                End If
            End If
        Else
            Open Paths For Output As #1
            Print #1, asd
            Close #1
            GoTo VarInput
        End If
    End Sub
    
Function EsisteFile(NomeFile As String) As Boolean
On Error Resume Next
EsisteFile = (GetAttr(NomeFile) And vbDirectory) = 0
End Function
Ultima modifica effettuata da Gilean 18/05/08 9:52
aaa
18/05/08 16:46
gantonio
Non scrivere

Randomize (Rnd())

ma

Randomize Timer
aaa