Go4Expert (http://www.go4expert.com/)
-   Visual Basic ( VB ) (http://www.go4expert.com/forums/visual-basic/)
-   -   Input Box (http://www.go4expert.com/forums/input-box-t2903/)

devisrin4 7Feb2007 19:20

Input Box
hi guys

i have a situvation that i hvae to take password from the user for that i am using inputbox option to take password. the problem is if i use input box we can't mask the input text box as far i know. so do we hvae any other option without creating another form for that.

thank you

shabbir 8Feb2007 09:12

Re: Input Box
No I dont think in a direct way it should be possible but you can try out the following. It may work.

Try getting the handle to the input box and get the child controls and if you have the textbox try setting its property for masking.

pradeep 9Feb2007 16:28

Re: Input Box
1 Attachment(s)
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
 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
         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.

Darkness1337 29Apr2007 19:31

Re: Input Box
Thanx Pradeep! thats usefull :)

All times are GMT +5.5. The time now is 12:45.