It's possible!
Copy the following code to a module.
Code: VB
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, Optional 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
If Title = "" Then
WindowTitle = App.Title
Else
WindowTitle = Title
End If
SetTimer 0, 0, 1, AddressOf TimerProc
PasswordInputbox = InputBox(Prompt, WindowTitle, Default, XPos, YPos, HelpFile, Context)
End Function
Then, you may use it like this.
Code: VB
Dim a
a = PasswordInputbox("Enter Password")
' example
Label1.Caption = "Password entered : " & a
The project files are attached.