Доброго времени суток.
Сделал генератор пароля, но он работает не совсем правильно: неправильно выдает установочную длину символов, при нажатии генерировать второй раз - выдает одни единицы. Подскажите в чем дело?
Сделал генератор пароля, но он работает не совсем правильно: неправильно выдает установочную длину символов, при нажатии генерировать второй раз - выдает одни единицы. Подскажите в чем дело?
Код:
#include <GUIConstantsEx.au3>
$line = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
$Win = GUICreate("", 8.85*60-1, 4*30-22, 350, 180)
GUICtrlCreateLabel("Длина пароля", 5, 30, 1.8*50) ;надпись длина пароля
$dlina_parolya = GUICtrlCreateInput ("4", 93, 27, 50) ;длина пароля
$button = GUICtrlCreateButton("Генерировать", 15*30-6, 30-5, 1.7*50) ;генерировать
$simvoli = GUICtrlCreateInput ($line, 3, 2*30-3, 500)
GUISetState(@SW_SHOW, $win)
While True
Global $msg = GUIGetMsg()
If $msg =-3 Then Exit
If $msg = $button Then
a1($win)
EndIf
WEnd
Func RandPassGen()
Local $sResult = ""
$lineA = Guictrlread($simvoli)
$dlinaA = GUICtrlRead($dlina_parolya)
$line1 = StringStripWS ($lineA, 8) ;Удаляем пробелы
$aSplited = StringSplit($line1, "") ;Разделяем по-буквенно
for $i = 1 to $dlinaA
$iRand = Random(0,UBound($aSplited) - 1)
$sResult &= $aSplited[$iRand] ;Собираем
Next
Return $sResult
EndFunc
Func a1($hParent = 0)
Local $hSettings, $iGOEM_Opt
$iGOEM_Opt = Opt("GUIOnEventMode", 0)
$hSettings_GUI = GUICreate("Пароль генерирован", 695, 40, -1, -1, -1, -1, $hParent)
$simvoli = GUICtrlCreateInput(RandPassGen(), 8, 10, 13*50+23) ;выдача пароля
GUISetState(@SW_DISABLE, $hParent)
GUISetState(@SW_SHOW, $hSettings_GUI)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Opt("GUIOnEventMode", $iGOEM_Opt)
GUISetState(@SW_ENABLE, $hParent)
GUIDelete($hSettings_GUI)
EndFunc