把PASSWORD “*”字样,显示为明文Public Declare Sub RtlMoveMemory Lib "kernel32" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long) '发WM_GETTEXT消息函数 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 hLength As Long Public bArr() As Byte, bArr2() As Byte Public Const WM_GETTEXT = &HD Public Const WM_GETTEXTLENGTH = &HE '获取文本的函数 Public Function GetText(ByVal hWndNow As Long) As String '获取文本长度 hLength = SendMessage(hWndNow, WM_GETTEXTLENGTH, 0, 0) If hLength > 0 Then '设置缓冲区 ReDim bArr(hLength + 1) As Byte, bArr2(hLength - 1) As Byte Call RtlMoveMemory(bArr(0), hLength, 2) '发送WM_GETTEXT消息 Call SendMessage(hWndNow, WM_GETTEXT, hLength + 1, bArr(0)) Call RtlMoveMemory(bArr2(0), bArr(0), hLength) '得到文本 GetText = StrConv(bArr2, vbUnicode) Else GetText = "" End If
'发WM_GETTEXT消息函数
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 hLength As Long
Public bArr() As Byte, bArr2() As Byte
Public Const WM_GETTEXT = &HD
Public Const WM_GETTEXTLENGTH = &HE
'获取文本的函数
Public Function GetText(ByVal hWndNow As Long) As String
'获取文本长度
hLength = SendMessage(hWndNow, WM_GETTEXTLENGTH, 0, 0)
If hLength > 0 Then
'设置缓冲区
ReDim bArr(hLength + 1) As Byte, bArr2(hLength - 1) As Byte
Call RtlMoveMemory(bArr(0), hLength, 2)
'发送WM_GETTEXT消息
Call SendMessage(hWndNow, WM_GETTEXT, hLength + 1, bArr(0))
Call RtlMoveMemory(bArr2(0), bArr(0), hLength)
'得到文本
GetText = StrConv(bArr2, vbUnicode)
Else
GetText = ""
End If
End Function