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