Что нового

[Окна, Диалоги]Чтение пароля из файла на запуск программы

Romuk

Новичок
Сообщения
17
Репутация
0
Спомошю етого кодам можно поставить пароль на прогу!
Код:
$pass = InputBox ( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
if $pass <> "1111" Then
MsgBox(0, "", "Пошел вон!")
Exit
Endif

А как сделать что бы етот пароль сохранилса и пры следущем входе в прогу его не надо было водить?
 

lexaSF

Новичок
Сообщения
182
Репутация
3
Re: [Окна, Диалоги] Пароль

сделай так:
Код:
$passIni = iniread(@ScriptDir,'Section','key','')
If $passIni = '' Then
$pass = InputBox ( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
if $pass <> "1111" Then
MsgBox(0, "", "Пошел вон!")
Exit
Endif
Else IniWrite(@ScriptDir,'Section','key',$pass)
Endif
 

`p r o x y

«Улыбайтесь, господа!»
Команда форума
Глобальный модератор
Сообщения
596
Репутация
157
Re: [Окна, Диалоги] Пароль

Romuk
{CodeWarn.SModer}
{TopicNameWarn.SModer}

Название тема, пример:
Чтение пароля из файла на запуск программы
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Окна, Диалоги] Пароль

lexaSF [?]
Просьба: не помагай другим пока сам не разобрался как работать с AutoIt.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Окна, Диалоги] Пароль

Romuk
И ещё одно:
{LangWarn.Admin}
 
Автор
R

Romuk

Новичок
Сообщения
17
Репутация
0
Код:
$passIni = iniread(@ScriptDir,'Section','key','')
If $passIni = '' Then
$pass = InputBox ( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
if $pass <> "1111" Then
MsgBox(0, "", "Пошел вон!")
Exit
Endif
Else IniWrite(@ScriptDir,'Section','key',$pass)
Endif

неробит!
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Re: [Окна, Диалоги] Пароль

Код:
If Not FileExists("account.ini") Then
	$sPass = _EnterPass()
	IniWrite("account.ini", "Account", "password", $sPass)
Else
	$sPass = IniRead("account.ini", "Account", "password", "Not found!")
	If Not $sPass Then
		$sPass = _EnterPass()
		IniWrite("account.ini", "Account", "password", $sPass)
	EndIf
EndIf

Func _EnterPass()
	Local $sPass
	Do 
		$sPass = InputBox( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
		If @error Then Exit
		Sleep(250)
	Until $sPass <> ""
	Return $sPass
EndFunc

ConsoleWrite($sPass & @CRLF)
 

zloe4udo

Новичок
Сообщения
4
Репутация
0
этот код настраиваемый? интерфейс есть?
 
Автор
R

Romuk

Новичок
Сообщения
17
Репутация
0
Код:
If Not FileExists("account.ini") Then
    $sPass = _EnterPass()
    IniWrite("account.ini", "Account", "password", $sPass)
Else
    $sPass = IniRead("account.ini", "Account", "password", "Not found!")
    If Not $sPass Then
        $sPass = _EnterPass()
        IniWrite("account.ini", "Account", "password", $sPass)
    EndIf
EndIf

Func _EnterPass()
    Local $sPass
    Do 
        $sPass = InputBox( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
        If @error Then Exit
        Sleep(250)
    Until $sPass <> ""
    Return $sPass
EndFunc

ConsoleWrite($sPass & @CRLF)

Где здесь свой пароль водить?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Romuk [?]
Где здесь свой пароль водить?
:blink:
Запускаем скрипт
Скрипт проверит, есть ли у нас файл account.ini
-если нет, создаёт и предлагает ввести пароль
-если есть, смотрит что содержится в файле
-если пароль отсутствует, предлагает ввести его
-если присутствует, читает в переменную $sPass и отдаёт вам

Romuk [?]
А как сделать что бы етот пароль сохранилса и пры следущем входе в прогу его не надо было водить?
С трудом, но я именно так понял постановку вашего вопроса.
 
Автор
R

Romuk

Новичок
Сообщения
17
Репутация
0
Мне нужно что бы на проге стоял мой пароль! А когда его водиле создавалса фаил account и сохранял его! (Пароль!)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Код:
$sPassword = "123456789"

$sPass = _EnterPass($sPassword)
ConsoleWrite($sPass & @CRLF)

Func _EnterPass($sPassword)
	Local $sPass
	
	While 1
		$sPass = InputBox( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
		If @error Then Exit
		If $sPassword = $sPass Then 
			IniWrite("account.ini", "Account", "password", $sPass)
			$sPassword = 0
			ExitLoop
		EndIf
		Sleep(250)
	WEnd
	
	Return $sPass
EndFunc
 
Автор
R

Romuk

Новичок
Сообщения
17
Репутация
0
оно всьо рамно повторно выкидевает табличку мол ведите пароль!
 

kosjachok

Новичок
Сообщения
30
Репутация
3
Romuk
Ты меня поражаешь, здесь - ты супер пупер прогер - хакер...
А в этой теме даже правильный запрос сформулировать не можешь... :rofl:
Неужели трудно написать, что нужно чтобы прога спрашивала пароль один раз, при запуске, и при верном пароле - сохраняла его в настройках(а ещё лучше в реестре) и больше не запрашивала...
Кстати Garrett уже привёл тебе верный код:
Код:
If Not FileExists("account.ini") Then
    $sPass = _EnterPass()
    IniWrite("account.ini", "Account", "password", $sPass)
Else
    $sPass = IniRead("account.ini", "Account", "password", "Not found!")
    If Not $sPass Then
        $sPass = _EnterPass()
        IniWrite("account.ini", "Account", "password", $sPass)
    EndIf
EndIf

Func _EnterPass()
    Local $sPass
    Do
        $sPass = InputBox( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
        If @error Then Exit
        Sleep(250)
    Until $sPass <> "здесь пароль на вход в программу"
    Return $sPass
EndFunc
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Romuk
Вообще-то InputBox выводят тогда когда хотят сравнить пароль на соответствие или его нужно просто ввести.
Смысл выводить InputBox и потом просто нажимать "Ок" чтобы закрыть его???
Так или иначе:
Код:
Dim $sPassword = "123456789"
	
InputBox( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
IniWrite("account.ini", "Account", "password", $sPassword)

ConsoleWrite($sPassword & @CRLF)


kosjachok [?]
Код:
Until $sPass <> "здесь пароль на вход в программу"
А смысл? При этом условие в account.ini будет записан любой пароль?
 

kosjachok

Новичок
Сообщения
30
Репутация
3
Garrett [?]
А смысл? При этом условие в account.ini будет записан любой пароль?
То я немного протупил, то что он хочет скорее выглядит так:
Код:
If Not FileExists("account.ini") Then
    $sPass = _EnterPass()
    IniWrite("account.ini", "Account", "password", $sPass)
Else
    $sPass = IniRead("account.ini", "Account", "password", "Not found!")
    If Not $sPass Then
        $sPass = _EnterPass()
        IniWrite("account.ini", "Account", "password", $sPass)
    EndIf
EndIf

Func _EnterPass()
    Local $sPass
        $sPass = InputBox( "Ввод пароля", "введите пароль" , "" , "*" , 100, 120 )
        If @error Then Exit
        Sleep(250)
	    if $sPass <> "1111" Then
			MsgBox(0, "", "Пароль не верен! Пошел вон!")
			Exit
	    Endif    
Return $sPass
EndFunc
 

kosjachok

Новичок
Сообщения
30
Репутация
3
Или, предел мечтаний - такой вариант:
Код:
$SCONTROL_1 = IniRead(@ScriptDir & "\options.ini", "Options", "key", "")
$INUMBER = 3
$SCONTROL_PASS = "parol"
If $SCONTROL_1 = $SCONTROL_PASS Then
	MsgBox(64, "Password:", "The password is correct!")
Else
	For $I = 1 To $INUMBER
		$SPASS = InputBox("Ввод пароля", "Введите пароль", "", "*")
		If @error Or Not $SPASS Then Exit
		$ICHECK = StringCompare($SPASS, $SCONTROL_PASS, 1)
		Switch $ICHECK
			Case 0
				MsgBox(64, "OK", "Пароль правильный!", 3)
				IniWrite(@ScriptDir & "\options.ini", "Options", "key", $SCONTROL_PASS)
				ExitLoop
			Case Else
				If $INUMBER - $I Then
					MsgBox(16, "Error", "Пароль не правильный." & @LF & "Осталось попыток ввода: " & $INUMBER - $I, 5)
				Else
					MsgBox(16, "Error", "Попыток ввода пароля: " & $INUMBER & ", и ни одной правильной!" & @LF & "До свидания!", 5)
					Exit
				EndIf
		EndSwitch
	Next
EndIf
 
Верх