欢迎大家访问我的网站!

VB枚举一个窗体上的所有控件句柄,类名,ID QQ举例等内容

思博2022-03-30 23:47:40504编程开发

模块 
---------------------------------------------------------------- 
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控件


转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:http://lxkj.vip/?id=71

网友评论