Đây là một đoạn code rất hữu dụng khi bạn muốn xem một của sổ thuộc lớp nào. Bạn có thể sử dụng để xem những gì dấu sau khi cửa sổ của ứng dụng (chẳng hạn bạn có thể xem password được lưu dưới dạng *).
Private Type POINTAPI
x As Long
y As Long
End Type
Private Declare Function GetCursorPos Lib ''user32'' (lpPoint As POINTAPI) As Long
Private Declare Function GetClassName Lib ''user32'' Alias ''GetClassNameA'' (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
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 WindowFromPoint Lib ''user32'' (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Const WM_GETTEXT = &HD
Const WM_GETTEXTLENGTH = &HE
Private Sub Form_Unload(Cancel As Integer)
End
End Sub
Private Sub Timer1_Timer()
Dim P As POINTAPI, lRet As Long, hHandle As Long, aClass As String, aText As String
lRet = GetCursorPos(P)
hHandle = WindowFromPoint(P.x, P.y)
aClass = Space$(128)
lRet = GetClassName(hHandle, aClass, 128)
aClass = Left$(aClass, lRet)
lblHandle.Caption = hHandle
lblClassName.Caption = aClass
Dim lTextlen As Long
lTextlen = SendMessage(hHandle, WM_GETTEXTLENGTH, 0, ByVal 0)
If lTextlen Then
If lTextlen > 1024 Then lTextlen = 1024
lTextlen = lTextlen + 1
aText = Space$(lTextlen)
lRet = SendMessage(hHandle, WM_GETTEXT, lTextlen, ByVal aText)
aText = Left$(aText, lRet)
End If
lblWText.Caption = aText
End Sub