Нужно написать виртуальную клавиатуру для программы
Помогите пожалуйста дописать виртуальную клавиатуру.
Нужно, чтоб при нажатии на л. кнопку мыши в определённых координатах экрана выполнялось заданное в программе действие и при этом Windows не реагировала на нажатие этой кнопки.
То есть щелкаем по комбобоксу на форме --> список комбобокса выпадает --> далее щелкаем в ту область формы где находится кнопка --> программа блокирует щелчок (комбобокс не закрывается) и при этом системе отправляется сообщение, что нажата клавиша на клавиатуре.
При отправке системе нажатия клавиши я использую SendKeys ().
Координаты курсора мыши я тоже знаю как определить.
Осталось только определять нажатие левой кнопки мыши, блокировать его и подменять на нажатие клавиши клавиатуры.
Программу пишу на Visual Basic 6.0 с которым знаком всего три недели. (До этого программил на Delphi и PHP). Но начальство сказало писать на VB6.
Помогите пожалуйста. Посоветуйте какие API функции можно использовать.
Заранее спасибо.
Вот у меня есть такой вариант, но он не работает. :confused:
Что тут не так?
Public Type PointAPI
X As Long
Y As Long
End Type
Public Type MOUSEHOOKSTRUCT
pt As PointAPI
hwnd As Long
wHitTestCode As Long
dwExtraInfo As Long
End Type
Public Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" _
(pDest As Any, _
pSource As Any, _
ByVal cb As Long)
MouseHandle = SetWindowsHookEx( _
WH_MOUSE, AddressOf MouseCallback1, _
App.hInstance, 0&)
Public Function MouseCallback1(ByVal Code As Long, _
ByVal wParam As Long, lParam As Long) As Long
Dim Mousestruct As MOUSEHOOKSTRUCT
Dim tempPoint As PointAPI
MouseIndicator = 1
If (Code = HC_ACTION) Then
Call CopyMemory(Mousestruct, ByVal lParam, Len(Mousestruct))
' Copy the Mouse data out of the lParam (which is a pointer)
If wParam = WM_LBUTTONDOWN Then
' Do the processing
End If
End If
End Function