Доброго времени суток.
При изучении любого языка программирования, думаю, правильно сразу практиковать навыки. Вот и я решил начать с простого — генератор паролей. Знаю, не говорите, их тысячи, но у меня будет свой – практика как ни как ;D
Но столкнулся с проблемой, разглядывая которую даже под лупой, не могу найти ошибки. Нужна ваша помощь!
Долго думал, показывать ли весь код. Хотел на простом примере показать в чем суть вопроса. Но на простом примере все работает! :( Так что выкладываю весь код генератора.
А проблема вот в чем: Функция _Main() ==> второй бесконечный цикл While 1 ==> ищем кнопку $ButtonRefreshPassword. На нее подвешено 2 действия с Input – 1-е очистка, 2-е Показ нового пароля. Еще раз извиняюсь за то, что пришлось вывалить весь код. Как всегда я чего-то не учел и очистка инпута не происходит( Буду благодарен за любую помощь
При изучении любого языка программирования, думаю, правильно сразу практиковать навыки. Вот и я решил начать с простого — генератор паролей. Знаю, не говорите, их тысячи, но у меня будет свой – практика как ни как ;D
Но столкнулся с проблемой, разглядывая которую даже под лупой, не могу найти ошибки. Нужна ваша помощь!
Долго думал, показывать ли весь код. Хотел на простом примере показать в чем суть вопроса. Но на простом примере все работает! :( Так что выкладываю весь код генератора.
А проблема вот в чем: Функция _Main() ==> второй бесконечный цикл While 1 ==> ищем кнопку $ButtonRefreshPassword. На нее подвешено 2 действия с Input – 1-е очистка, 2-е Показ нового пароля. Еще раз извиняюсь за то, что пришлось вывалить весь код. Как всегда я чего-то не учел и очистка инпута не происходит( Буду благодарен за любую помощь
Код:
#include <GUIConstantsEx.au3>
#include <GUIConstants.au3>
#include <Array.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
_Main()
Func _Main()
Global $password
Local $ButtonDoPassword, $msg, $howmuch, $difficult
GuiCreate("Генератор паролей", 210, 160)
$howmuch = GUICtrlCreateInput("" , 50, 20, 100, 20)
$difficult = GUICtrlCreateCombo("" , 50, 70)
GUICtrlSetData(-1, 'very easy|easy|normal|hard', 'hard')
$ButtonDoPassword = GuiCtrlCreateButton("Ok", 50,120,60,20)
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, 'GUIExit')
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $ButtonDoPassword
Local $much, $dif
Local $GuiPasswordInput[2]
$much = GUICtrlRead($howmuch)
$dif = GUICtrlRead($difficult)
GUIDelete()
GUICreate("Ваш пароль", 200, 150)
$GuiPasswordInput[1] = ""
$GuiPasswordInput[0] = GUICtrlCreateInput($GuiPasswordInput[1], 50, 20, 100, 20)
$ButtonRefreshPassword = GuiCtrlCreateButton("Refresh!", 50,80,60,20)
GUISetState(@SW_SHOW)
GUISetOnEvent($GUI_EVENT_CLOSE, 'GUIExit')
CreateThePassword($much, $dif)
GUICtrlSetData($GuiPasswordInput[0], $password)
;Send("{CTRLDOWN}+a{CTRLUP}")
While 1
$guimsg = GUIGetMsg()
Select
Case $guimsg = $ButtonRefreshPassword
CreateThePassword($much, $dif)
GUICtrlSetData($GuiPasswordInput[0], $GuiPasswordInput[1])
GUICtrlSetData($GuiPasswordInput[0], $password)
Case $guimsg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
ExitLoop
EndSelect
WEnd
GUIDelete()
EndFunc
Func CreateThePassword($much, $dif)
Local $count
Local $sing[3]
$sing[0] = "!"
$sing[1] = "%"
$sing[2] = "*"
For $a = 0 To $much - 1
Select
Case $dif = 'very easy'
$count = Random(0, 9, 1)
Case $dif = 'easy'
If Random() < 0.5 Then
$count = Random(0, 9, 1)
Else
$count = Chr(Random(Asc("a"), Asc("z"), 1))
EndIf
Case $dif = 'normal'
$rand = Random(-5, 5, 1)
If $rand <= 1 AND $rand >= -1 Then
$count = Random(0, 9, 1)
ElseIf $rand > 1 Then
$count = Chr(Random(Asc("a"), Asc("z"), 1))
ElseIf $rand < -1 Then
$count = Chr(Random(Asc("A"), Asc("Z"), 1))
EndIf
Case $dif = 'hard'
$rand = Random(-5, 7, 1)
If $rand <= 1 AND $rand >= -1 Then
$count = Random(0, 9, 1)
ElseIf $rand < -1 Then
$count = Chr(Random(Asc("a"), Asc("z"), 1))
ElseIf $rand > 1 AND $rand <= 5 Then
$count = Chr(Random(Asc("A"), Asc("Z"), 1))
ElseIf $rand > 5 AND $rand <= 7 Then
$p = Random(0, 2, 1)
$count = $sing[$p]
EndIf
EndSelect
$password &= $count
Next
Return $password
EndFunc