powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перехват нажатий клавиш!!!
4 сообщений из 4, страница 1 из 1
Перехват нажатий клавиш!!!
    #32074920
Demidoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здрасти!!!
Помогите пожалуйста!!! Как перехватить нажатия клавиш в конкретном окне другой программы? Т.е. программа должна висеть в памяти и ждать когда в другой программе откроется нужное окно, как тока нужное окно открывается, программа должна перехватывать все нажатия клавиш. Думаю что без API функций здесь не обойтись!!!
Заранее спасибо!!!
...
Рейтинг: 0 / 0
Перехват нажатий клавиш!!!
    #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
Перехват нажатий клавиш!!!
    #32074953
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На всякий случай пример от microsoft HOWTO: Intercept Keyboard Input from Visual Basic
...
Рейтинг: 0 / 0
Перехват нажатий клавиш!!!
    #32074980
Demidoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за подсказку!!! Но, если можно, покажите пример хоть какой-нибудь!!!
Спасибо!!!
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Перехват нажатий клавиш!!!
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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