Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 32

Хук клавы и мыши

17.08.2019, 22:16. Показов 948. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе всем время суток,как с помощью одного хука обрабатывать сообщения клавиатуры и мыши? или для каждого события нужно создавать отдельный хук? Хотелось бы как-то красиво это делать в одной функции с помощью одного хука или так нельзя?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.08.2019, 22:16
Ответы с готовыми решениями:

Глобальный хук мыши
Ребят подскажите пожалуйста где у меня ошибка почему при нажатиии мыши у меня не срабатывает моя хук процедура вот код #include...

Хук мыши ломает ввод
Всем доброго времени суток! Пишу кликер для игры, но не суть. Написал хук клавы и мыши, оба работают, но: если хук поймает нажатие мыши, то...

Вывод текста введенного с клавы
В общем вопрос - почему прграмма не печатает по нужным координатам текст, который я преждевременно ввел? Может объясните новичку в винапи...

3
0 / 0 / 0
Регистрация: 18.07.2015
Сообщений: 76
18.08.2019, 10:34
Обработчик клавишь:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
#include <windows.h>
bool isKeyPressed(int key)
{
    return (GetAsyncKeyState(key) & 0x8000) != 0;
}


ID Клавишь:
Кликните здесь для просмотра всего текста
C++
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <windows.h>
enum KeyID
        {
            Unknown = -1,                 ///< Unhandled key
            A = 'A',                      ///< The A key
            B = 'B',                      ///< The B key
            C = 'C',                      ///< The C key
            D = 'D',                      ///< The D key
            E = 'E',                      ///< The E key
            F = 'F',                      ///< The F key
            G = 'G',                      ///< The G key
            H = 'H',                      ///< The H key
            I = 'I',                      ///< The I key
            J = 'J',                      ///< The J key
            K = 'K',                      ///< The K key
            L = 'L',                      ///< The L key
            M = 'M',                      ///< The M key
            N = 'N',                      ///< The N key
            O = 'O',                      ///< The O key
            P = 'P',                      ///< The P key
            Q = 'Q',                      ///< The Q key
            R = 'R',                      ///< The R key
            S = 'S',                      ///< The S key
            T = 'T',                      ///< The T key
            U = 'U',                      ///< The U key
            V = 'V',                      ///< The V key
            W = 'W',                      ///< The W key
            X = 'X',                      ///< The X key
            Y = 'Y',                      ///< The Y key
            Z = 'Z',                      ///< The Z key
            Num0 = '0',                   ///< The 0 key
            Num1 = '1',                   ///< The 1 key
            Num2 = '2',                   ///< The 2 key
            Num3 = '3',                   ///< The 3 key
            Num4 = '4',                   ///< The 4 key
            Num5 = '5',                   ///< The 5 key
            Num6 = '6',                   ///< The 6 key
            Num7 = '7',                   ///< The 7 key
            Num8 = '8',                   ///< The 8 key
            Num9 = '9',                   ///< The 9 key
            Escape = VK_ESCAPE,           ///< The Escape key
            LControl = VK_LCONTROL,       ///< The left Control key
            LShift = VK_LSHIFT,           ///< The left Shift key
            LAlt = VK_LMENU,              ///< The left Alt key
            LWin = VK_LWIN,               ///< The left OS specific key: window (Windows and Linux), apple (MacOS X), ...
            RControl = VK_RCONTROL,       ///< The right Control key
            RShift = VK_RSHIFT,           ///< The right Shift key
            RAlt = VK_RMENU,              ///< The right Alt key
            RWin = VK_RWIN,               ///< The right OS specific key: window (Windows and Linux), apple (MacOS X), ...
            Menu = VK_APPS,               ///< The Menu key
            LBracket = VK_OEM_4,          ///< The [ key
            RBracket = VK_OEM_6,          ///< The ] key
            Semicolon = VK_OEM_1,         ///< The ; key
            Comma = VK_OEM_COMMA,         ///< The , key
            Period = VK_OEM_PERIOD,       ///< The . key
            Quote = VK_OEM_7,             ///< The ' key
            Slash = VK_OEM_2,             ///< The / key
            Backslash = VK_OEM_5,         ///< The \ key
            Tilde = VK_OEM_3,             ///< The ~ key
            Equal = VK_OEM_PLUS,          ///< The = key
            Hyphen = VK_OEM_MINUS,        ///< The - key (hyphen)
            Space = VK_SPACE,             ///< The Space key
            Enter = VK_RETURN,            ///< The Enter/Return keys
            Backspace = VK_BACK,          ///< The Backspace key
            Tab = VK_TAB,                 ///< The Tabulation key
            PageUp = VK_PRIOR,            ///< The Page up key
            PageDown = VK_NEXT,           ///< The Page down key
            End = VK_END,                 ///< The End key
            Home = VK_HOME,               ///< The Home key
            Insert = VK_INSERT,           ///< The Insert key
            Delete = VK_DELETE,           ///< The Delete key
            Add = VK_ADD,                 ///< The + key
            Subtract = VK_SUBTRACT,       ///< The - key (minus, usually from numpad)
            Multiply = VK_MULTIPLY,       ///< The * key
            Divide = VK_DIVIDE,           ///< The / key
            Left = VK_LEFT,               ///< Left arrow
            Right = VK_RIGHT,             ///< Right arrow
            Up = VK_UP,                   ///< Up arrow
            Down = VK_DOWN,               ///< Down arrow
            Numpad0 = VK_NUMPAD0,         ///< The numpad 0 key
            Numpad1 = VK_NUMPAD1,         ///< The numpad 1 key
            Numpad2 = VK_NUMPAD2,         ///< The numpad 2 key
            Numpad3 = VK_NUMPAD3,         ///< The numpad 3 key
            Numpad4 = VK_NUMPAD4,         ///< The numpad 4 key
            Numpad5 = VK_NUMPAD5,         ///< The numpad 5 key
            Numpad6 = VK_NUMPAD6,         ///< The numpad 6 key
            Numpad7 = VK_NUMPAD7,         ///< The numpad 7 key
            Numpad8 = VK_NUMPAD8,         ///< The numpad 8 key
            Numpad9 = VK_NUMPAD9,         ///< The numpad 9 key
            F1 = VK_F1,                   ///< The F1 key
            F2 = VK_F2,                   ///< The F2 key
            F3 = VK_F3,                   ///< The F3 key
            F4 = VK_F4,                   ///< The F4 key
            F5 = VK_F5,                   ///< The F5 key
            F6 = VK_F6,                   ///< The F6 key
            F7 = VK_F7,                   ///< The F7 key
            F8 = VK_F8,                   ///< The F8 key
            F9 = VK_F9,                   ///< The F9 key
            F10 = VK_F10,                 ///< The F10 key
            F11 = VK_F11,                 ///< The F11 key
            F12 = VK_F12,                 ///< The F12 key
            F13 = VK_F13,                 ///< The F13 key
            F14 = VK_F14,                 ///< The F14 key
            F15 = VK_F15,                 ///< The F15 key
            Pause = VK_PAUSE,
 
            //добавленные мной
            MouseLeft = VK_LBUTTON,       ///< The left mouse button
            MouseRight = VK_RBUTTON,      ///< The right mouse button
            MouseMidle = VK_MBUTTON,      ///< The midle mouse button
            Mouse1 = VK_XBUTTON1,         ///< The mouse button X1
            Mouse2 = VK_XBUTTON2          ///< The mouse button X2
        };


Вы это искали?

Добавлено через 3 минуты
Тут остальные:
https://api.farmanager.com/ru/... codes.html
0
0 / 0 / 0
Регистрация: 14.10.2018
Сообщений: 32
18.08.2019, 14:40  [ТС]
Не,я имел ввиду
C++
1
HHOOK hHook = SetWindowsHookEx(WH_KEYBOARD_LL,LogKey,NULL,NULL);
есть вот такая конструкция,она ловит события клавиатуры, я бы хотел что бы она еще ловила и события мыши,а не создавать новую для мыши ,пробовал через или
C++
1
WH_KEYBOARD_LL || WH_MOUSE_LL
не работает
0
0 / 0 / 0
Регистрация: 18.07.2015
Сообщений: 76
18.08.2019, 15:28
Через SetWindowsHookEx не получится т.к. эти ключи не поддерживают совмещение
C++
1
2
#define WH_KEYBOARD_LL     13
#define WH_MOUSE_LL        14
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.08.2019, 15:28
Помогаю со студенческими работами здесь

Как скрыть курсор мыши и захватить мышку, чтобы не было стрелки мыши и получать команды?
Искал статью в инете и команды: Как сделать захват мыши, чтобы сделать видеоугру от первого лица и избавится от двигающегося курсора мыши....

Отключение клавы-мыши
Здравствуйте Я довольно продвинутый пользователь, но тут я честно подгораю Суть проблемы такова: Я как геймер провожу время в...

Медиаплееры поддерживают беспроводные мыши и клавы?
Хочу приобрести медиаплейер и в нём помимо наличия Wi-Fi интересует возможность использования беспроводных клавиатуры с мышью. Раз...

Блокировка клавы и мыши для активных приложений
Добрый день! Есть следующая ситуация: - запущена ОС Win XP - запущено несколько приложений (браузер, текстовый редактор, любые другие...

Глобал хук мыши
Добрый день! У меня имеется глобал хук клавиатуры, сейчас мне понадобилось добавить хук мыши, создавать новый хук не хочется, как можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru