Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.63/27: Рейтинг темы: голосов - 27, средняя оценка - 4.63
2 / 2 / 0
Регистрация: 17.11.2010
Сообщений: 36
1

Звездочки вместо символов в InputBox

31.03.2011, 10:15. Показов 4866. Ответов 2
Метки нет (Все метки)

Подскажите пожалуйста.. есть такой вот код для замены символов звездочками, добавляется он в модуль, но почему то не работает.


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SetTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&, ByVal uElapse&, ByVal lpTimerFunc&)
Public Declare Function KillTimer& Lib "user32" (ByVal hWnd&, ByVal nIDEvent&)
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Const NV_INPUTBOX As Long = &H5000&
Public Const EM_SETPASSWORDCHAR = &HCC
Private CaptionText As String
 
Public Sub TimerProc(ByVal hWnd&, ByVal uMsg&, ByVal idEvent&, ByVal dwTime&)
Dim myHwnd As Long
myHwnd = FindWindowEx(FindWindow(vbNullString, CaptionText), 0, "Edit", "")
Call SendMessage(myHwnd, EM_SETPASSWORDCHAR, 42, 0)
KillTimer Access.hWndAccessApp, idEvent
End Sub
 
Public Function InputBoxEx(Prompt As String, Caption As String) As String
Dim xxx As String
CaptionText = Caption
SetTimer Access.hWndAccessApp, NV_INPUTBOX, 10, AddressOf TimerProc
xxx = InputBox(Prompt, Caption)
InputBoxEx = xxx
MsgBox (xxx)
End Function


InputBox вызывается в:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub sost1_LostFocus()
On Error Resume Next
    Const TRUERASSWORD = "2040024841"
If TRUERASSWORD <> InputBox("Введите пароль") Then
MsgBox "Неверный пароль!"
Me.Undo
Exit Sub
Else
 Me.date_s = Date
 Me.time_s = Time
End If
End Sub
0
Заказывайте контрольные, курсовые и дипломы здесь.
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2011, 10:15
Ответы с готовыми решениями:

Звездочки вместо символов в inputbox
Добрый день. Есть ли возможность при вводе символов в inputbox отображать звездочки, как пароля?

Звездочки вместо символов пароля
как сделать чтобы вместо символов пароля на экран выводились звездочки? #include &quot;stdafx.h&quot;...

Звездочки вместо цифр
Всем привет! Не знаю как сделать, чтобы при вводе пароля он отображался в виде звездочек(*). То...

Звездочки вместо букв!
Как сделать так, чтобы при наборе текста в поле формы на экране отображались звездочки, типа как...

2
535 / 365 / 16
Регистрация: 17.12.2009
Сообщений: 965
31.03.2011, 10:46 2
Сделайте лучше не при помощи InputBox а при помощи маленькой формы ,вылетающей при открытии базы к примеру. Там в этой форме в поле где пароль вводиться поставьте формат маски поля - "пароль".
Это лучший выход, так как в форме помимо поля пароль можно организовать поле логин. А при наличии собственно этих двух полей осуществить раздачу прав пользователям при входе в базу.

Ваш первоначальный код с InputBox рабочий, я при построении своей БД на работе содрал пример этого кода на сайте Русимпорта. Заточил под свою версию БД. Все работало, НО!!... Потом база стала расти,к ней подключались все новые и новые отделы моей компании со своими обязанностями и правами доступа данных. Пришлось все переделывать и вставлять эту маленькую формочку с двумя полями ЛОГИН и ПАРОЛЬ. Настоятельно советую последовать моему примеру, это более правильное решение.

Есть еще один интересный способ запароливания БД - при запуске вашей СУБД запускается процедура проверки имени вашего компьютера, если такое имя есть, то база открывается, если нет, то соответственно не открывается. Могу скинуть код, он проще гораздо чем с инпут боксом. Если вам интересно конечно.
1
2 / 2 / 0
Регистрация: 17.11.2010
Сообщений: 36
31.03.2011, 14:51  [ТС] 3
Спасибо за совет..
С кодом вроде бы решил...
исправил
Visual Basic
1
If TRUERASSWORD <> InputBox("Введите пароль") Then
на

Visual Basic
1
If TRUERASSWORD <> InputBoxEx("Введите пароль",'" ") Then
звездочки вместо символов появились, но теперь столкнулся с такой штукой, что он выдает 2е окно, в котором показан собственно пароль и кнопка подтверждения..(т.е. ОК) вроде как дополнительного подтверждения.. можно ли как нибудь это его убрать? ну или хотя бы что бы пароль не высвечивался?

Добавлено через 9 минут
Сергей1980, По сути эта тема является продолжением вот этой вот Хитрая форма для проверки пароля Access 2003

Добавлено через 3 часа 44 минуты
Оказалось все проще чем могло бы быть.
в коде закоментировал строку
Visual Basic
1
MsgBox (xxx)
и все пошло без лишних окон
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2011, 14:51

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Вместо InputBox
Нужное значение в ячейке &quot;О4&quot; столбец 1. Что поменять в макросе, чтобы нужное значение, которое...

Ввод пароля с отображением звездочки вместо символа
Составить программу, обеспечивающую ввод пароля с отображением вместо символа «*». Примечание: в...

Вместо введенных пользователем чисел выводить звездочки
Привет всем, вообще такая проблема:нужно написать программу которая будет вместо введенных...

Пароль (вместо цифр звездочки в консольном приложении)
Хочу , чтобы вместо цифр вводились звездочки))) как это реализовать в консольном приложении на c#?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.