Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перехват нажатий клавиш!!! / 4 сообщений из 4, страница 1 из 1
03.12.2002, 09:13
    #32074920
Demidoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатий клавиш!!!
Здрасти!!!
Помогите пожалуйста!!! Как перехватить нажатия клавиш в конкретном окне другой программы? Т.е. программа должна висеть в памяти и ждать когда в другой программе откроется нужное окно, как тока нужное окно открывается, программа должна перехватывать все нажатия клавиш. Думаю что без API функций здесь не обойтись!!!
Заранее спасибо!!!
...
Рейтинг: 0 / 0
03.12.2002, 09:54
    #32074940
Маveric
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатий клавиш!!!
Если в окно чужого приложения то только API функциями. Я вот так перехватывал сообщения чужого окна:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
Public Const GWL_WNDPROC = (- 4 )
Global lpPrevWndProc As Long

' Описание функции, которой надо передать управление после обработки 
'сообщения окна на которое поставили Хук


Declare Function CallWindowProc Lib  "user32"  Alias _
          "CallWindowProcA"  (ByVal lpPrevWndFunc As Long, ByVal Hwnd As _
         Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As _
         Long) As Long

' Функция устанавливает новую функцию- обработчик событий для окна

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
         (ByVal Hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As _
         Long) As Long


Public Sub Hook(hwnd as long)
  ' Устанавливает Hook не окно с дескриптором hwnd 
  lpPrevWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Public Sub Unhook(hwnd as long)
  ' Снимает Hook с окна с дескриптором hwnd
  Dim temp As Long
  temp = SetWindowLong(hwnd, GWL_WNDPROC, lpPrevWndProc)
End Sub

Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, _
    ByVal wParam As Long, ByVal lParam As Long) As Long
  ' Функция принимающая сообщения от окна
  ' Здесь можно перехватывать все сообщения окна, на который постален хук
  ' передаем управление стандартному обработчику окна
  WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
...
Рейтинг: 0 / 0
03.12.2002, 10:07
    #32074953
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатий клавиш!!!
На всякий случай пример от microsoft HOWTO: Intercept Keyboard Input from Visual Basic
...
Рейтинг: 0 / 0
03.12.2002, 10:32
    #32074980
Demidoff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват нажатий клавиш!!!
Спасибо за подсказку!!! Но, если можно, покажите пример хоть какой-нибудь!!!
Спасибо!!!
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перехват нажатий клавиш!!! / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]