TEXTO DO INPUTBOX
Quero criar um inputbox onde os caracterez digitados nele aparecam "****" como se fosse um campo de senha... tem como fazer isso...
Pelo que sei não...
Faz uma "réplica" da inputbox com um formulário normal... é super-fácil!!!
Faz uma "réplica" da inputbox com um formulário normal... é super-fácil!!!
'Adicione no seu formulario um botao(CommandButton)
'COLOQUE ISSO EM UM MODULE
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 Sub TimerProc(ByVal hwnd&, ByVal uMsg&, _
ByVal idEvent&, ByVal dwTime&)
Dim EditHwnd As Long
' CHANGE APP.TITLE TO YOUR INPUT BOX TITLE.
EditHwnd = FindWindowEx(FindWindow("#32770", App.Title), _
0, "Edit", "")
Call SendMessage(EditHwnd, EM_SETPASSWORDCHAR, Asc("*"), 0)
KillTimer hwnd, idEvent
End Sub
'COLOQUE ISSO NO FORM
Dim ret As String
SetTimer hwnd, NV_INPUTBOX, 10, AddressOf TimerProc
ret = InputBox("Enter Password")
MsgBox ret
'COLOQUE ISSO EM UM MODULE
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 Sub TimerProc(ByVal hwnd&, ByVal uMsg&, _
ByVal idEvent&, ByVal dwTime&)
Dim EditHwnd As Long
' CHANGE APP.TITLE TO YOUR INPUT BOX TITLE.
EditHwnd = FindWindowEx(FindWindow("#32770", App.Title), _
0, "Edit", "")
Call SendMessage(EditHwnd, EM_SETPASSWORDCHAR, Asc("*"), 0)
KillTimer hwnd, idEvent
End Sub
'COLOQUE ISSO NO FORM
Dim ret As String
SetTimer hwnd, NV_INPUTBOX, 10, AddressOf TimerProc
ret = InputBox("Enter Password")
MsgBox ret
Ou usar no Default do InputBox a string sem valor, só de exibição "*****"
Almir Safadi
Almir Safadi
Tópico encerrado , respostas não são mais permitidas