Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Нужно написать виртуальную клавиатуру для программы

51K
07 августа 2009 года
rezerv69
2 / / 07.08.2009
Здравствуйте!
Помогите пожалуйста дописать виртуальную клавиатуру.
Нужно, чтоб при нажатии на л. кнопку мыши в определённых координатах экрана выполнялось заданное в программе действие и при этом Windows не реагировала на нажатие этой кнопки.
То есть щелкаем по комбобоксу на форме --> список комбобокса выпадает --> далее щелкаем в ту область формы где находится кнопка --> программа блокирует щелчок (комбобокс не закрывается) и при этом системе отправляется сообщение, что нажата клавиша на клавиатуре.

При отправке системе нажатия клавиши я использую SendKeys ().
Координаты курсора мыши я тоже знаю как определить.
Осталось только определять нажатие левой кнопки мыши, блокировать его и подменять на нажатие клавиши клавиатуры.

Программу пишу на Visual Basic 6.0 с которым знаком всего три недели. (До этого программил на Delphi и PHP). Но начальство сказало писать на VB6.

Помогите пожалуйста. Посоветуйте какие API функции можно использовать.
Заранее спасибо.
51K
07 августа 2009 года
rezerv69
2 / / 07.08.2009
Я так понимаю надо хук для мышки ставить.

Вот у меня есть такой вариант, но он не работает. :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
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог