你可以使用一个Timer控件定时获得当前鼠标位置,然后根据位置获得该位置上的控件句柄,再根据控件句柄获得类名和文本,最后根据类名判断控件类型。 但是,如果是要判断WEBBROWSER控件中网页元素的类型,则需要编写脚本来判断,我这里先给你写一个获得VB窗口上控件的代码,脚本程序过两天再写。 Option ExplicitPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) 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 GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Type POINTAPI x As Long y As Long End TypePrivate Sub Form_Load() Me.WebBrowser1.Navigate2 "http://www.baidu.com" End SubPrivate Sub Timer1_Timer() Dim curPos As POINTAPI Dim ctlWnd As Long Dim szClass As String, szText As String
Select Case szClass Case "ThunderFormDC" 'VB窗体 Case "ThunderCommandButton" 'VB按钮 Case "ThunderTextBox" 'VB文本框 Case "ThunderPictureBoxDC" 'VB图片框 Case "Edit" 'VB下拉框 Case "ThunderListBox" 'VB列表框 Case "ThunderOptionButton" 'VB单选框 Case "ThunderCheckBox" 'VB复选框 Case Else '其它的不再列出 End Select
但是,如果是要判断WEBBROWSER控件中网页元素的类型,则需要编写脚本来判断,我这里先给你写一个获得VB窗口上控件的代码,脚本程序过两天再写。
Option ExplicitPrivate Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) 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 GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hWnd As Long, ByVal lpString As String, ByVal cch As Long) As LongPrivate Type POINTAPI
x As Long
y As Long
End TypePrivate Sub Form_Load()
Me.WebBrowser1.Navigate2 "http://www.baidu.com"
End SubPrivate Sub Timer1_Timer()
Dim curPos As POINTAPI
Dim ctlWnd As Long
Dim szClass As String, szText As String
szClass = Space(100)
szText = Space(100)
GetCursorPos curPos
ctlWnd = WindowFromPoint(curPos.x, curPos.y)
GetClassName ctlWnd, szClass, 100
szClass = Left(szClass, InStr(szClass, Chr(0)) - 1)
GetWindowText ctlWnd, szText, 100
szText = Left(szText, InStr(szText, Chr(0)) - 1)
Select Case szClass
Case "ThunderFormDC" 'VB窗体
Case "ThunderCommandButton" 'VB按钮
Case "ThunderTextBox" 'VB文本框
Case "ThunderPictureBoxDC" 'VB图片框
Case "Edit" 'VB下拉框
Case "ThunderListBox" 'VB列表框
Case "ThunderOptionButton" 'VB单选框
Case "ThunderCheckBox" 'VB复选框
Case Else '其它的不再列出
End Select
Debug.Print szClass, szText
End Sub