模块
----------------------------------------------------------------
Declare Function GetDlgItem Lib "user32" (ByVal hDlg As Long, ByVal nIDDlgItem As Long) As Long
Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Declare Function GetDesktopWindow Lib "user32" () As Long
Declare Function EnumChildWindows Lib "user32" (ByVal hWndParent As Long, ByVal lpEnumFunc As Long, ByVal lParam As Long) As Long
Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetDlgCtrlID Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function SetFocus1 Lib "user32" Alias "SetFocus" (ByVal hwnd As Long) As Long
Public Const WM_GETTEXT = &HD
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
Function EnumChildProc(ByVal hwnd As Long, ByVal lParam As Long) As Long
Form1.Text1 = Form1.Text1 & vbCrLf & "---------"
Dim Cn As String * 256
Dim Tx As String * 256
Dim sSave As String
GetClassName hwnd, Cn, 255
Form1.Text1 = Form1.Text1 & vbCrLf & "hwnd=" & hwnd
Form1.Text1 = Form1.Text1 & vbCrLf & "GetClassName=" & Cn
Form1.Text1 = Form1.Text1 & vbCrLf & "id=" & Cn
'Get the windowtext length
sSave = Space$(GetWindowTextLength(hwnd) + 1)
'get the window text
GetWindowText hwnd, sSave, Len(sSave)
'remove the last Chr$(0)
sSave = Left$(sSave, Len(sSave) - 1)
If sSave <> "" Then
Form1.Text1 = Form1.Text1 & vbCrLf & "GetWindowText=" & sSave
End If
'continue enumeration
EnumChildProc = 1
End Function
-------------------------------------------------
窗体
Dim QQhwnd As Long
Private Sub Command1_Click()
Text = ""
QQhwnd = FindWindow(vbNullString, "QQ用户登录")
If QQhwnd = 0 Then
MsgBox "未启动"
Exit Sub
End If
EnumChildWindows QQhwnd, AddressOf EnumChildProc, ByVal 0&
End Sub
from上 一个Text控件 一个button控件