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