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