Option Explicit
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private 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&)
Private Declare Function KillTimer& Lib "user32" (ByVal hwnd&, ByVal
nIDEvent&)
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam
As Any) As Long
Const EM_SETPASSWORDCHAR = &HCC
Public Const NV_INPUTBOX As Long = &H5000&
Public WindowTitle As String
Public Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal
idEvent As Long, ByVal dwTime As Long)
Dim EditHwnd As Long
EditHwnd = FindWindowEx(FindWindow("#32770", WindowTitle), 0,
"Edit", "")
Call SendMessage(EditHwnd, EM_SETPASSWORDCHAR, Asc("*"), 0)
KillTimer hwnd, idEvent
End Sub
Public Function PasswordInputbox(Prompt As String, Title As String,
Optional Default As String, Optional XPos As Long, Optional YPos As
Long, Optional HelpFile As Long, Optional Context As Long) As String
Dim ret As String
SetTimer 0, 0, 1, AddressOf TimerProc
PasswordInputbox = InputBox(Prompt, Title, Default, XPos, YPos,
HelpFile, Context)
End Function
Public Function TestPassword()
On Error GoTo errhandler
Dim strPassword As String
strPassword = PasswordInputbox("Enter administrator password for access
to the ordermaster form", "ADMIN PASSWORD REQUIRED")
If strPassword <> "HELLO_WORLD" Then
MsgBox "Invalid Password.", vbOKOnly + vbCritical
Else
MsgBox "VALID Password.", vbOKOnly + vbCritical
End If
cleanexit:
Exit Function
errhandler:
MsgBox Err.Number & " - " & Err.Description, vbOKOnly + vbCritical
Resume Next
End Function