Вопрос № 131711: Подскажите код программы, при запуске которой бы запрашивался пароль (цикл с пост условием). И второй вопрос, как сделать так, чтобы при вводе пароля он не был виден (ну как обычно чтобы были ****)....
Вопрос № 131.711
Подскажите код программы, при запуске которой бы запрашивался пароль (цикл с пост условием). И второй вопрос, как сделать так, чтобы при вводе пароля он не был виден (ну как обычно чтобы были ****).
Отвечает: Черников Игорь Владимирович
Здравствуйте, Семин Алексей Юрьевич!
Можно обойтись и без цикла:
добавьте на форму два TextBox-а и назовите Текст1 и Текст2
Dim login As String
Dim pasw As String
Private Sub Form_Load()
login = "Логин" ' Логин и пароль придумайте свои
pasw = "qwe123"
Текст2.PasswordChar = "*" 'Показывает вместо символов звёздочки, можно указать свой символ
End Sub
Private Sub Текст2_KeyUp(KeyCode As Integer, Shift As Integer)
If Текст1 = "Логин" And Текст2 = "qwe123" Then
MsgBox "Правильно"
End If
If (Len(Текст1) = Len(login) And Len(Текст2) = Len(pasw)) And (Текст1 <> "Логин" Or Текст2 <> "qwe123") Then
MsgBox "НЕ правильно"
'End
End If
End Sub
Удачи!
--------- От каждого по способностям, каждому по труду
Отвечает: Евгений Владимирович
Здравствуйте, Семин Алексей Юрьевич!
Предыдущий совет в принципе правильный, но если у вас есть необходимость защитить окно со сзвёздочками от взлома (есть такие программы), то вам необходимо будет написать процедуру перехватывания ввода символов в текст бокс ,сохранения данных в переменную и вывода в текст бокс символа звёздочки(либо любого другого). Код не сложный и потому я его приводить не буду. Удачи в экспериментах. :)
Ответ отправил: Евгений Владимирович (статус: 1-ый класс)
Ответ отправлен: 12.04.2008, 10:50
Отвечает: Павленко Александр Геннадьевич
Здравствуйте, Семин Алексей Юрьевич!
У объекта TextBox есть свойство PasswordChar, задаете "*"
Чтоб при запуске, создайте процедуру, щелкнув дважды по самой форме.
Не знаю, что именно вы хотели сделать, поэтому оформите сами.
Кстати, насчет пароля - интересная статейка, всем на заметку.
Есть много программ, снимающих маски с окон с паролями... Все, наверное, видели: наводишь мышку на окно со звёздочками и в окне программы-взломщика появляется текст пароля. Приложения, написанные на Visual Basic не защещены от этого... Другими словами в текстовом окне всё же находится текст, только замаскированный. Я же нашёл как этого избежать: в разделе формы General Declarations объявите переменную, котрая будет содержать код:
Dim pswd As String
в свойствах текстового поля установите в PasswordChar звёздочку "*". Теперь кликните по текстовому полю два раза и выберите событие Text1_KeyPress, впишите:
Private Sub Text1_KeyPress(KeyAscii As Integer)
pswd = pswd + Chr(KeyAscii)
KeyAscii = Asc("*")
End Sub
Теперь нажатия будут отлавливаться, а передоваться будут текстовому полю только звёздочки! И программа-взломщик пароль уже не достанет!!! Если кто-то хочет сделать так, как в Linux'e, т.е. никаких звёздочек нет вообще, то строку KeyAscii = Asc("*") надо заменить на KeyAscii = 0 и всё!