#include #include #include 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