Форум программистов, компьютерный форум CyberForum.ru

Hook клавиатуры - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
11.06.2010, 23:21     Hook клавиатуры #1
Приветствую всех,
подскажите мне, пожалуйста, как установить хук клавиатуры на кнопку F12?
С хуками пытался разобраться... но не особо получается... Желательно по-подробнее.

Заранее благодарю.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
12.06.2010, 00:53     Hook клавиатуры #2
отлавливайте эвент для VK_F12.

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
HOOKPROC KeyboardHook(int nCode, WPARAM wParam, LPARAM lParam)
{
    if(!(lParam >> 31 & 1))//нажатие
    {
        if (wParam == VK_F12)
            Beep(1000, 100);
    }
    else //отпускание
    {
        if (wParam == VK_F12)
            Beep(100, 100);
    }
    return 0;
}

Что именно не получается, уточните
SKDzR
0 / 0 / 0
Регистрация: 10.01.2010
Сообщений: 91
12.06.2010, 10:00  [ТС]     Hook клавиатуры #3
мне вот надо сделать такую вещь, чтобы клавишу F12 нажал (нажал-отпустил) - пошли действия, ещё одно нажатие клавиши - действия прекращаются
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.06.2010, 10:33     Hook клавиатуры #4
Цитата Сообщение от M128K145 Посмотреть сообщение
if(!(lParam >> 31 & 1))
M128K145, смущают магические числа. Есть же флаги специальные. Вот для отпускания:
C++
1
if(nCode == HC_ACTION && !(HIWORD(lParam) & KF_UP))
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
12.06.2010, 10:35     Hook клавиатуры #5
SKDzR, добавляешь в обработку нажатия флаг, при каждом нажатии меняешь его состояние, и в зависимости от его значения выполняешь или одно или другое действие.
M128K145
Эксперт C++
 Аватар для M128K145
8272 / 3491 / 142
Регистрация: 03.07.2009
Сообщений: 10,707
12.06.2010, 11:03     Hook клавиатуры #6
CyBOSSeR, просто 31 бит всегда отвечает за нажатие, поэтому это не магическое число в полном смысле этого выражения
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.06.2010, 11:41     Hook клавиатуры
Еще ссылки по теме:

Hook клавиатуры и мыши C++
C++ Написать программу, которая будет добавлять в текстовый файл введенную с клавиатуры информацию.З клавиатуры вводится имя компании, год основания
C++ Hook не работает

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

Или воспользуйтесь поиском по форуму:
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.06.2010, 11:41     Hook клавиатуры #7
M128K145, дело в том, что ты знаешь об этом, а кто-то нет. И этому кому-то будет сложно понять, что же происходит на самом деле.
Знания нужно выражать в наиболее явной форме, использование символических имен как раз таки позволяет это сделать.
Yandex
Объявления
12.06.2010, 11:41     Hook клавиатуры
Ответ Создать тему
Опции темы

Текущее время: 00:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru