Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <file.au3>
Global Const $chemin = "mot de passe generator.ini"
Global $y = _FileCountLines ($chemin)/2+1
$gui = GUICreate ("Mot de passe generator",500,200)
$generer = GUICtrlCreateButton ("Generer",250,160,100)
$reset = GUICtrlCreateButton ("Reset",400,160,50)
$enregistrer = GUICtrlCreateButton ("Enregistrer dans mot de passe generator.txt",200,97,250)
$check1 = GUICtrlCreateCheckbox ("Chiffre",15,10)
$check2 = GUICtrlCreateCheckbox ("Lettres",15,30)
$check3 = GUICtrlCreateCheckbox ("Majuscule,Minuscule (Seulement avec ""LETTRE"")",15,50)
$check4 = GUICtrlCreateCheckbox ("Caractere speciaux (&'_:;,.!@#$%*()-=+[]\/?)",15,70)
$check5 = GUICtrlCreateCheckbox ("Sauvegarder automatiquement",15,90)
$input1 = GUICtrlCreateInput ("",285,50,200,21,BitOR ($ES_CENTER,$ES_READONLY))
$input2 = GUICtrlCreateInput ("10",125,125,50,21,BitOR ($ES_CENTER,$ES_READONLY))
$input3 = GUICtrlCreateInput ("1",65,150,50,21,BitOR ($ES_CENTER,$ES_READONLY))
GUICtrlCreateUpdown ($input2)
GUICtrlCreateUpdown ($input3)
GUICtrlCreateLabel ("Nombre de caractere",15,125)
GUICtrlCreateLabel ("Generer",15,150)
GUICtrlCreateLabel ("Mot de passe",125,150)
GUISetState (@SW_SHOW)
While 1
$m = GUIGetMsg ()
Switch $m
Case $GUI_EVENT_CLOSE
MsgBox (64,"About this","About this program : By Drave, All right reserved")
ExitLoop
Case $generer
For $x = 1 To GUICtrlRead($input3)
GUICtrlSetData ($input1,_mdpgenerate(GUICtrlRead($input2),GUICtrlRead($input3),_IsChecked ($check1),_IsChecked ($check2),_IsChecked ($check3),_IsChecked ($check4),_IsChecked($check5)))
Next
Case $reset
GUICtrlSetData ($input1,"")
GUICtrlSetData ($input2,"10")
GUICtrlSetData ($input3,"1")
Case $enregistrer
IniWrite ($chemin,$y,"mdp ",guictrlread($input1))
$y = $y+1
EndSwitch
WEnd
Func _mdpgenerate($nbcara,$fois,$chiffreflag,$lettreflag,$majflag,$caraspeceflag,$sauvegardeauto)
Local $mdp,$lettre1,$chiffre1,$maj1,$caraspece1
If $chiffreflag = 1 Then
$chiffre1 = "0123456789"
EndIf
If $majflag = 1 Then
$maj1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
EndIf
If $lettreflag = 1 Then
$lettre1 ="abcdefghijklmnopqrstuvwxyz"
EndIf
If $caraspeceflag = 1 Then
$caraspece1 = "&'_:;,.!@#$%*()-=+[]\/?"
EndIf
If $chiffreflag And $lettreflag And $majflag And $caraspeceflag Then
$cara = StringSplit ($chiffre1 & $lettre1 & $maj1& $caraspece1,"")
ElseIf $chiffreflag And $lettreflag And $majflag Then
$cara = StringSplit ($chiffre1 & $lettre1 & $maj1 ,"")
ElseIf $chiffreflag And $lettreflag and $caraspeceflag Then
$cara = StringSplit ($chiffre1 & $lettre1 & $caraspece1,"" )
ElseIf $lettreflag And $majflag And $caraspeceflag Then
$cara = StringSplit ($lettre1 & $maj1 & $caraspece1,"")
ElseIf $chiffreflag And $caraspeceflag Then
$cara = StringSplit ($chiffre1&$caraspece1,"")
ElseIf $chiffreflag And $lettreflag Then
$cara = StringSplit ($chiffre1 & $lettre1,"")
ElseIf $lettreflag And $caraspeceflag Then
$cara = StringSplit ($lettre1 & $caraspece1,"")
ElseIf $lettreflag And $majflag Then
$cara = StringSplit ($lettre1 & $maj1,"")
ElseIf $chiffreflag Then
$cara = StringSplit ($chiffre1,"")
ElseIf $lettreflag Then
$cara = StringSplit ($lettre1,"")
ElseIf $caraspeceflag Then
$cara = StringSplit ($caraspece1,"")
ElseIf $majflag Then
$cara = StringSplit ("","")
Else
MsgBox (16,"Error","Error le programme a rencontrer un probleme car vous n'ever pas cocher de case il va redemarer ... Il se peut aussi que le bug soit du au fait que vous ayer cliquer sur ""Majuscule,minuscule"" sans ""Lettres""")
ShellExecute ("Mot de passe generator.exe")
EndIf
For $i = 1 To $nbcara
$mdp &= $cara[Random(1,$cara[0],1)]
Next
If $sauvegardeauto Then
IniWrite($chemin,$y,"mdp",$mdp)
$y = $y+1
EndIf
Return $mdp
EndFunc
Func _IsChecked($control)
Return BitAnd(GUICtrlRead($control),$GUI_CHECKED) = $GUI_CHECKED
EndFunc