Soyez le premier à donner votre avis sur cette source.
Vue 43 527 fois - Téléchargée 853 fois
'on déclare des nombres qui permettront d'avoir la valeur des clés en ASCII Dim temp1 As Integer Dim temp2 As Integer Dim temp3 As Integer Dim temp4 As Integer Dim temp5 As Integer Dim temp6 As Integer Dim temp7 As Integer Dim temp8 As Integer Dim temp9 As Integer Dim temp10 As Integer Dim temp11 As Integer Dim temp12 As Integer Dim temp13 As Integer Dim temp14 As Integer Dim temp15 As Integer Dim temp16 As Integer Dim temp17 As Integer Dim temp18 As Integer Dim temp19 As Integer Dim temp20 As Integer 'on déclare le nombre de lignes de list1 Dim number_list As Integer Private Sub Label1_Click() 'Label nommé "PROCESS" 'on efface list1 (cela permet de générer des clés à l'infini) List1.Clear 'On définit le nombre de lignes de list1 number_list = 0 'on montre à l'utilisateur que le processus est en train de se faire MousePointer = vbHourglass 'On commence la boucle Do 'on dé&finit la progression de la progressbar ProgressBar1.Value = "0" 'on définit les 2 premiers caractères Text1 = "S" Text2 = "W" 'On génère un chiffre qui determinera si on met un chiffre ou une lettre Randomize dt_c = Int(Rnd * 2 + 1) 'Si il égale 0, If dt_c = "0" Then 'on régénère le chiffre Randomize dt_c = Int(Rnd * 2 + 1) End If 'Si il égale 1, If dt_c = "1" Then 'alors on met une lettre Randomize 'sachant que chr(65) = A (il faut des majuscules) Text3 = Chr(Int(Rnd * 26) + 65) 'on génère une lettre de A à Z Else 'Si il égale 2, If dt_c = "2" Then 'alors on met un chiffre Randomize 'sachant que chr(49) = 1 Text3 = Chr(Int(Rnd * 9) + 49) 'on génère un chiffre entre 1 et 9 End If End If 'Si la zone de texte est vide au final (au cas où; ça peut arriver...), If Text3 = "" Then Randomize 'alors on génère un chiffre Text3 = Chr(Int(Rnd * 9) + 49) End If 'Puis on rédéfinit la progression de la progressbar ProgressBar1.Value = "6" '### 'VOILA, ON FAIT LA MÊME CHOSE POUR TOUTES LES AUTRES ZONES DE TEXTE '### Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text4 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text4 = Chr(Int(Rnd * 9) + 49) End If End If If Text4 = "" Then Randomize Text4 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "12" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text5 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text5 = Chr(Int(Rnd * 9) + 49) End If End If If Text5 = "" Then Randomize Text5 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "18" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text6 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text6 = Chr(Int(Rnd * 9) + 49) End If End If If Text6 = "" Then Randomize Text6 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "24" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text7 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text7 = Chr(Int(Rnd * 9) + 49) End If End If If Text7 = "" Then Randomize Text7 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "30" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text8 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text8 = Chr(Int(Rnd * 9) + 49) End If End If If Text8 = "" Then Randomize Text8 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "36" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text9 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text9 = Chr(Int(Rnd * 9) + 49) End If End If If Text9 = "" Then Randomize Text9 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "42" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text10 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text10 = Chr(Int(Rnd * 9) + 49) End If End If If Text10 = "" Then Randomize Text10 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "48" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text11 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text11 = Chr(Int(Rnd * 9) + 49) End If End If If Text11 = "" Then Randomize Text11 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "54" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text12 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text12 = Chr(Int(Rnd * 9) + 49) End If End If If Text12 = "" Then Randomize Text12 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "60" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text13 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text13 = Chr(Int(Rnd * 9) + 49) End If End If If Text13 = "" Then Randomize Text13 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "66" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text14 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text14 = Chr(Int(Rnd * 9) + 49) End If End If If Text14 = "" Then Randomize Text14 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "72" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text15 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text15 = Chr(Int(Rnd * 9) + 49) End If End If If Text15 = "" Then Randomize Text15 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "78" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text16 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text16 = Chr(Int(Rnd * 9) + 49) End If End If If Text16 = "" Then Randomize Text16 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "84" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text17 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text17 = Chr(Int(Rnd * 9) + 49) End If End If If Text17 = "" Then Randomize Text17 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "90" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text18 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text18 = Chr(Int(Rnd * 9) + 49) End If End If If Text18 = "" Then Randomize Text18 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "96" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text19 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text19 = Chr(Int(Rnd * 9) + 49) End If End If If Text19 = "" Then Randomize Text19 = Chr(Int(Rnd * 9) + 49) End If ProgressBar1.Value = "100" Randomize dt_c = Int(Rnd * 2 + 1) If dt_c = "0" Then Randomize dt_c = Int(Rnd * 2 + 1) End If If dt_c = "1" Then Randomize Text20 = Chr(Int(Rnd * 26) + 65) Else If dt_c = "2" Then Randomize Text20 = Chr(Int(Rnd * 9) + 49) End If End If If Text20 = "" Then Randomize Text20 = Chr(Int(Rnd * 9) + 49) End If 'il y a 20 zones de texte : '5 fois 4 caractères ' 'Puis on calcule le code ASCII de chaque caractère '(n'oubliez pas qu'on les a défini en tant que Integer, ça va permettre 'de les additionner, et non pas de de tout mettre à la suite ;)) ' temp1 = Asc(Text1) 'temp1 = le code ASCII de text1 temp2 = Asc(Text2) 'temp2 = le code ASCII de text1 temp3 = Asc(Text3) 'temp3 = le code ASCII de text1 temp4 = Asc(Text4) 'temp4 = le code ASCII de text1 temp5 = Asc(Text5) 'temp5 = le code ASCII de text1 temp6 = Asc(Text6) 'temp6 = le code ASCII de text1 temp7 = Asc(Text7) 'temp7 = le code ASCII de text1 temp8 = Asc(Text8) 'temp8 = le code ASCII de text1 temp9 = Asc(Text9) 'temp9 = le code ASCII de text1 temp10 = Asc(Text10) 'temp10 = le code ASCII de text1 temp11 = Asc(Text11) 'temp11 = le code ASCII de text1 temp12 = Asc(Text12) 'temp12 = le code ASCII de text1 temp13 = Asc(Text13) 'temp13 = le code ASCII de text1 temp14 = Asc(Text14) 'temp14 = le code ASCII de text1 temp15 = Asc(Text15) 'temp15 = le code ASCII de text1 temp16 = Asc(Text16) 'temp16 = le code ASCII de text1 temp17 = Asc(Text17) 'temp17 = le code ASCII de text1 temp18 = Asc(Text18) 'temp18 = le code ASCII de text1 temp19 = Asc(Text19) 'temp19 = le code ASCII de text1 temp20 = Asc(Text20) 'temp20 = le code ASCII de text1 'On termine l'opération, on le montre donc à l'utilisateur, 'en mettant la progression de la progressbar à 100% ProgressBar1.Value = "100" 'Puis on regroupe tous les caractères pour mettre en forme la clé générée '(on ajoute au passage des tirets pour séparer la clé en groupes de 4) key_entier = Text1 + Text2 + Text3 + Text4 + " - " + Text5 + Text6 + Text7 + Text8 + " - " + Text9 + Text10 + Text11 + Text12 + " - " + Text13 + Text14 + Text15 + Text16 + " - " + Text17 + Text18 + Text19 + Text20 'Puis on calcule la somme de tous les codes ASCII des caractères qui forment la clé Somme = temp1 + temp2 + temp3 + temp4 + temp5 + temp6 + temp7 + temp8 + temp9 + temp10 + temp11 + temp12 + temp13 + temp14 + temp15 + temp16 + temp17 + temp18 + temp19 + temp20 'Et on vérifie que la clé se trouve entre 1400 et 1500 (pour qu'elle soit valide) 'Si elle se trouve en 1400 et 1500 (>1400 et <1500), If Somme < 1500 Then If Somme > 1400 Then 'Alors on l'ajoute dans la liste List1.AddItem key_entier 'et on compte une ligne en + (ça va permettre d'arrêter la boucle + tard...) number_list = number_list + 1 End If End If 'Un problème : ça ajoute même les clés <1400 et >1500 'On fait donc d'autres fonctions : 'Si c'est inférieur à 1400, If Somme < 1400 Then 'Alors on remplace la clé invalide par "Clé Invalide" (le programme est en anglais, donc...) List1.List(number_list) = "Unvalid Key" End If 'Et si c'est supérieur à 1500, If Somme > 1500 Then 'alors on fait la même chose... List1.List(number_list) = "Unvalid Key" End If 'Puis on met une fonction qui va arrêter la boucle '(sinon, ça n'en finit jamais, et ça fait planter le prog... normal... ;)) Loop Until number_list = 200 'On fait la boucle jusqu'à ce qu'il y ait 200 lignes '(ça laisse le choix de la clé...) 'Puis on enlève le sablier, car on a finit le processus MousePointer = vbDefault 'Et on donne le nombre de clés '(là, ça sert à rien, ça sera toujours 200...) MsgBox number_list & " found keys", vbOKOnly, "Star Wars Galaxies KeyMaker" End Sub Private Sub Label2_Click() 'Label nommé "STOP" '## 'c'est pas trop conseillé d'arrêter en plein processus, 'parce que c'est en train de calculer en boucle, donc c'est pas bon, 'et ça va faire planter le prog... '## 'On enlève le sablier MousePointer = vbDefault 'Et on met le nombre de lignes de la liste à 199 pour que ça s'arrête (à 200) 'il vaut mieux mettre 199... number_list = "199" End Sub Private Sub Save_Click() '## 'il y a le composant "Microsoft common dialog control" sur la form 'c'est grâce à ce procédé qu'on peut afficher la fenêtre pour enregistrer ou ouvrir un fichier '(et puis c'est plus présentable qu'une form faite par soi-même...) '## 'On montre la fenêtre pour sauvegarder CoD.ShowSave 'on mémorise le nom de fichier qui sera enregistré en .txt nom_fichier = CoD.FileName & ".txt" 'on ouvre le fichier Open nom_fichier For Output As #1 'puis on écrit toutes les lignes qu'il y a dans la liste For n = 0 To (200 - 1) Write #1, List1.List(n) Next n 'et on ferme Close #1 End Sub
12 janv. 2010 à 19:07
Je ne pense pas que ce générateur marche avec les Sims 2, car les clés sont spécifiques.
Désolé, mais tu devrais pouvoir trouver ce que tu cherches ailleurs. =)
Cordialement,
Sharkiller
12 janv. 2010 à 12:45
10 juil. 2004 à 16:43
il faut générer un groupe de controles pour les textbox si tu utilises cette manière...
merci à toi, mais bon, pourquoi faire simple quand on peut faire compliqué ? ;)
bon aprem et bonne prog
@+, Sharky
10 juil. 2004 à 16:03
c'est très bien
par contre une suggestion : tu aurais pu réduire le "fouilli" de génération de text1,text2,text3,etc en te faisant une fonction avec des parametres puisque ca semble toujours être la meme "algorythme" qui génère ta clé et il y aurait aussi moyen d'améliorer la logique quelque peu.
exemple:
'/*Déclarer les variables en tableau.
private temp() as integer
private text() as string
Private Sub Label1_Click()
'Label nommé "PROCESS"
'on efface list1 (cela permet de générer des clés à l'infini)
List1.Clear
'On définit le nombre de lignes de list1
number_list = 0
'on montre à l'utilisateur que le processus est en train de se faire
MousePointer = vbHourglass
'On commence la boucle
Do
'on dé&finit la progression de la progressbar
ProgressBar1.Value = "0"
'on définit les 2 premiers caractères
Text(1) = "S"
Text(2) = "W"
temp(1) Asc(Text(1)) 'temp(1) le code ASCII de text(1)
temp(2) = Asc(Text(2))
progressbar1.value=10
key_entier=""
Somme=0
key_entier=key_entier & text(1) & text(2)
somme=somme + temp(1) + temp(2)
for i = 3 to 20
'/*On commence à 3 pour ne pas écraser 1 et 2 rempli 3 lignes + haut
'/*Appele GenereCaractere(chiffre pour progressbar.value)
text(i)=GenereCaractere(i*5)
'/*Converti le code ascii
temp(i) = Asc(Text(i))
'/*Assemble la clé au fur et à mesure
key_entier=key_entier & text(i)
/*Fait la somme au fur et à mesure
somme=somme + temp(i)
next i
'Et on vérifie que la clé se trouve entre 1400 et 1500 (pour qu'elle soit valide)
'Si elle se trouve en 1400 et 1500 (>1400 et <1500),
If Somme < 1500 Then
If Somme > 1400 Then
'Alors on l'ajoute dans la liste
List1.AddItem key_entier
'et on compte une ligne en + (ça va permettre d'arrêter la boucle + tard...)
number_list = number_list + 1
End If
End If
'Un problème : ça ajoute même les clés <1400 et >1500
'On fait donc d'autres fonctions :
'Si c'est inférieur à 1400,
If Somme < 1400 Then
'Alors on remplace la clé invalide par "Clé Invalide" (le programme est en anglais, donc...)
List1.List(number_list) = "Unvalid Key"
End If
'Et si c'est supérieur à 1500,
If Somme > 1500 Then
'alors on fait la même chose...
List1.List(number_list) = "Unvalid Key"
End If
'Puis on met une fonction qui va arrêter la boucle
'(sinon, ça n'en finit jamais, et ça fait planter le prog... normal... ;))
Loop Until number_list = 200 'On fait la boucle jusqu'à ce qu'il y ait 200 lignes
'(ça laisse le choix de la clé...)
'Puis on enlève le sablier, car on a finit le processus
MousePointer = vbDefault
'Et on donne le nombre de clés
'(là, ça sert à rien, ça sera toujours 200...)
MsgBox number_list & " found keys", vbOKOnly, "Star Wars Galaxies KeyMaker"
End Sub
private function GenereCaractere(pgb as integer) as string
dim tmpvar as string
Randomize
dt_c = Int(Rnd * 2 + 1)
'Si il égale 0,
If dt_c = "0" Then
'on régénère le chiffre
Randomize
dt_c = Int(Rnd * 2 + 1)
End If
'Si il égale 1,
If dt_c = "1" Then
'alors on met une lettre
Randomize
'sachant que chr(65) = A (il faut des majuscules)
tmpvar = Chr(Int(Rnd * 26) + 65) 'on génère une lettre de A à Z
Else
'Si il égale 2,
If dt_c = "2" Then
'alors on met un chiffre
Randomize
'sachant que chr(49) = 1
tmpvar = Chr(Int(Rnd * 9) + 49) 'on génère un chiffre entre 1 et 9
End If
End If
'Si la zone de texte est vide au final (au cas où; ça peut arriver...),
If tmpvar = "" Then
Randomize
'alors on génère un chiffre
tmpvar = Chr(Int(Rnd * 9) + 49)
End If
GenererCaractere=tmpvar
'Puis on rédéfinit la progression de la progressbar
ProgressBar1.Value = pgb
end function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.