两个API让星号密码框显示成明文
的有关信息介绍如下:两个API让星号密码框显示成明文
我们经常会遇到这种情况:保存在本地的密码忘记了,在密码框却显示"*"号,我们却无法得知密码。
遇到这种情况我们怎么办呢?
我们先打开测试程序,获取密码文本框的句柄!
我们利用SendMessage,InvalidateRect这两个API来实现功能。
完整代码如下:
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
Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, lpRect As Long, ByVal bErase As Long) As Long
Const EM_SETPASSWORDCHAR = &HCC
Private Sub Command1_Click()
Call SendMessage(131774, EM_SETPASSWORDCHAR, 0, 0)
''修改其PasswordChar属性值,取消原有的“*”设置,而使其显示真实字符.
Call InvalidateRect(0, 0, 1)
''刷新窗口
End Sub
运行程序,我们来看下效果!
密码框中的"*"符号没了,变成了明文显示,是不是很好玩呢?