Для отслеживания мышиных событий взял код уважаемого The trick:
' Модуль для перехвата событий ввода мыши и клавиатуры
' © Кривоус Анатолий Анатольевич (The trick), 2014
- Код: Выделить всё
Private Function LowLevelMouseProc(ByVal uCode As Long, ByVal wParam As Long, lParam As MSLLHOOKSTRUCT) As Long
If uCode = HC_ACTION Then
Select Case wParam
'
Case WM_LBUTTONDOWN
remX = lParam.pt.x 'запоминаем положение курсора мыши (Х-координату)
'
Case WM_LBUTTONUP
If remX <> lParam.pt.x Then ' если координаты Х при нажатии и отжатии не совпадают, значит
' или это просто отдельный клик, не проблема-в клипборд ничего не пойдёт
' или что-то было отмечено, и тогда отмеченное забираем в клипборд:
'
Call keybd_event(VK_CONTROL, 0, 0, 0) 'эмулируем нажатие клавиши Ctrl
Call keybd_event(VK_C, 0, 0, 0) 'эмулируем нажатие клавиши C
Call keybd_event(VK_C, 0, KEYEVENTF_KEYUP, 0) 'эмулируем отжатие клавиши C
Call keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0) 'эмулируем отжатие клавиши Ctrl
'
Sleep 50
If Clipboard.GetFormat(vbCFText) Then frmMain.Text1.Text = Clipboard.GetText
End If
End Select
End If
LowLevelMouseProc = CallNextHookEx(hMouseHook, uCode, wParam, lParam)
End Function
проблема-в Text1 текст не появляется, хотя в клипборде этот текст есть - через Ctrl+V он пастится в блокнот.
если же я цепляю
- Код: Выделить всё
If Clipboard.GetFormat(vbCFText) Then frmMain.Text1.Text = Clipboard.GetText
в чём я туплю?
и вообще, даже если это заработает - наверное, эмулировать нажатие клавиш - не лучший вариант. А что есть лучше?