试试WindowFromPoint函数,演示程序如下: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 LongPrivate Type POINTAPI x As Long y As Long End TypePrivate Sub Timer1_Timer() '加了一个timer控件,别忘了设置interval Dim p As POINTAPI, l As Long, h As Long, a$ l = GetCursorPos(p) '得到鼠标位置 h = WindowFromPoint(p.x, p.y) '得到鼠标所在位置的窗口句柄 a$ = Space(128) l = GetClassName(h, a$, 128) '得到鼠标所在位置的类名 a$ = Left$(a$, l) TxtHandle.Text = h '两个textbox显示结果 TxtClassName.Text = a$ End Sub
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 LongPrivate Type POINTAPI
x As Long
y As Long
End TypePrivate Sub Timer1_Timer() '加了一个timer控件,别忘了设置interval
Dim p As POINTAPI, l As Long, h As Long, a$
l = GetCursorPos(p) '得到鼠标位置
h = WindowFromPoint(p.x, p.y) '得到鼠标所在位置的窗口句柄
a$ = Space(128)
l = GetClassName(h, a$, 128) '得到鼠标所在位置的类名
a$ = Left$(a$, l)
TxtHandle.Text = h '两个textbox显示结果
TxtClassName.Text = a$
End Sub