PDA

View Full Version : [VB] asterischi in una inputbox


djdedo86
30-11-2007, 11:43
Salve ragazzi, praticamente devo richiedere una password ad un utente tramite la inputbox, solo che vorrei cambiare i caratteri digitati con degli asterischi. C'è un modo per fare questo in visual basic? E' un opzione della funzione inputbox?
grazie

okay
30-11-2007, 13:57
Salve ragazzi, praticamente devo richiedere una password ad un utente tramite la inputbox, solo che vorrei cambiare i caratteri digitati con degli asterischi. C'è un modo per fare questo in visual basic? E' un opzione della funzione inputbox?
grazie



si lo puoi fare:

guarda quì
http://blog.shareoffice.it/giannigiaccaglini/archive/2006/05/23/5659.aspx

djdedo86
30-11-2007, 15:19
sai anche se c'è un modo per farlo direttamente con la inputbox?
Se c'è qualche opzione particolare?
Grazie per la risposta comunque

shell32
30-11-2007, 15:48
ciao djdedo,
fai così:

Inserisci il seguente codice in un modulo .bas:

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


********************

Inserisci questo codice nell'evento Click di un Button (Command1_Click, per esempio):

Dim ret As String
SetTimer hwnd, NV_INPUTBOX, 10, AddressOf TimerProc
ret = InputBox("Enter Password")

MsgBox ret


Fammi sapere.

djdedo86
01-12-2007, 14:29
Ehi grazie shell32, con il tuo codice ho ottenuto proprio quello che avevo in mente...;)
grazie ancora dell'aiuto!!!