Code : Tout sélectionner
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <UpDownConstants.au3>
$file = FileOpen ("mpgenerator.txt",1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("PassWord Generator v1.0", 279, 211, 192, 124)
GUICtrlCreateLabel("PassWord Generator", 42, 8, 205, 28)
GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
GUICtrlCreateLabel("Password Len", 115, 60, 83, 17)
$PassWrdLen = GUICtrlCreateInput("10", 67, 56, 40, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL,$ES_READONLY,$ES_NUMBER))
GUICtrlCreateUpdown (-1)
GUICtrlSetLimit(-1, 20, 1)
$SpecialChars = GUICtrlCreateCheckbox(" Special Chars", 80, 96, 145, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$PassWrd = GUICtrlCreateInput("", 52, 136, 170, 21, BitOR($ES_CENTER,$ES_READONLY))
$Generate = GUICtrlCreateButton("Generate", 106, 176, 75, 25, 0)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetState($Generate, $GUI_FOCUS)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
FileClose ($file)
Exit
Case $Generate
GUICtrlSetData($PassWrd, _PassWordGenerate(GUICtrlRead($PassWrdLen), _IsChecked($SpecialChars)))
_vmdp ()
$mdp = GUICtrlRead ($PassWrd)
FileWrite ($file,$mdp & @CRLF)
EndSwitch
WEnd
;===============================================================================
; Description: Returns a password string with or without special chars.
; Parameter(s): $PassWordLen - The len of desired password
; $CharFlag - Use special chars in password.
; 0 = No
; 1 = Yes
; Requirement(s): None
; Return Value(s): Return a string.
;
; Author(s): JBnH
; Note(s):
; Examples: MsgBox(64,"Password without special chars", _PassWordGenerate(10, 0))
; MsgBox(64,"Password with special chars", _PassWordGenerate(10, 1))
;===============================================================================
Func _PassWordGenerate($PassWordLen, $CharFlag)
Local $PassWrd, $Global
If $CharFlag = 1 Then
$SpecialChar = StringSplit("&'_:;,.!@#$%*()-=+[]\/?", "")
For $X = 1 to $SpecialChar[0]
$Global &= $SpecialChar[$X]
Next
$Array = StringSplit("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" & $Global,"")
Else
$Array = StringSplit("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789","")
Endif
For $X = 1 to $PassWordLen
$PassWrd &= $Array[Random (1, $Array[0], 1)]
Next
Return $PassWrd
EndFunc
Func _IsChecked($control)
Return BitAnd(GUICtrlRead($control),$GUI_CHECKED) = $GUI_CHECKED
EndFunc
Func _vmdp ()
Local $line = 0
$mdpf = FileRead ($file)
$mdpfi = StringSplit ($mdpf,@CRLF)
$mdp = GUICtrlRead ($PassWrd)
$line +=1
If $mdpfi[$line] = $mdp Then
GUICtrlSetData($PassWrd, _PassWordGenerate(GUICtrlRead($PassWrdLen), _IsChecked($SpecialChars)))
_vmdp ()
EndIf
EndFunc