Declare Function GetCapture Lib "user32" () As Long
GetCapture получает описатель окна (если существует), захватившего мышь. Существует только одно такое окно.
Возвращается описатель окна текущего потока, захватившего мышь. Если мышь не захвачена ни одним окном текущего потока, то возвращается 0.
Функция не имеет параметров
' Выводим имя окна, захватившего мышь
' Создайте две формы и периодически перемещайте их по экрану
' Сам код расположите в событии Timer1_Timer() первой формы
Dim hWndCapture As Long
Dim wintext As String ' заголовок окна
Dim slength As Long
hWndCapture = GetCapture()
If hwndCapture = 0 Then
Debug.Print "Программа не имет окна, захватившего мышь"
Else
slength = GetWindowTextLength(hWndCapture) + 1
wintext = Space(slength)
slength = GetWindowText(hWndCapture, wintext, slength)
wintext = Left(wintext, slength)
Debug.Print "Окно " & Chr(34) & wintext & Chr(34) & " захватило мышь"
End If