特别声明:本文为原创,可自由转载、引用,但需署名作者且注明文章出处,如有侵权请联系!
VBA input输入框输入密码不可见(*)
<!--more-->在使用VBA工程时,有时候需要让用户输入密码等内容,input输入框输入的时候,所有内容是可见状态的。通过以下代码,可以实现input输入框输入时为*,达到隐藏输入内容的目的。
Option Explicit
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public 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 SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Public Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long
Public Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long
Public Declare Function GetTickCount Lib "kernel32" () As Long
Public Const EM_SETPASSWORDCHAR = &HCC
Public lTimeID As Long
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, ByVal dw1 As Long, ByVal dw2 As Long)
Dim hwd As Long
hwd = FindWindow("#32770", "密码")
If hwd <> 0 Then
hwd = FindWindowEx(hwd, 0, "edit", vbNullString)
SendMessage hwd, EM_SETPASSWORDCHAR, 42, 0
timeKillEvent lTimeID
End If
End Sub
Sub Password()
Dim Password As Variant
lTimeID = timeSetEvent(10, 0, AddressOf TimeProc, 1, 1)
Password = InputBox("请输入密码:", "密码")
If Password = "ghc516" Then
MsgBox "密码正确!"
'执行主程序代码
Application.Visible = True
Else
MsgBox "密码错误!"
End If
End Sub
文章来源:
zyglz
版权声明:本文为原创,可自由转载、引用,但需署名作者且注明文章出处,如有侵权请联系!
评论列表 (已有0条评论)
消灭零回复