Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 00:42   #1
Dalt
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 11
Лампочка Hotkey

Вопрос в стороннем приложении задействованы клавиши 's' 'd' как зарегистрировать комбинацию горячих клавиш на пример (не задействованная в чужой прог клавиша 'a')' a'+'s' 'd'.

Идея такая Например RegisterHotkey при зажатом флаге и нажатой гор-й кнопки блокирует ее выполнение комбинации что удобно и можно добавить свою ф-ю клавиши нажиматься не будут и выполнению не помешают. Но как я понял RegisterHotkey не может зарегить комбинация типа 'a'+'s' 'd'. Может можно это реализовать через Hook?

Попробую пояснить в программе нажатие 's' или 'd' вызывают события и да бог с ними комбинация 'a'+'s' 'd' (так как клавиша 'a' не задействована в сторонней прог-е) не к чему не приведет и обработаются только нажатия 's' или 'd'. Как лучше останавливать обработку 's' 'd' при нажатой 'a'.

Грубо говоря чтобы зажатая клавиша 'a' препятствовала отправке сообщений с клавишь 's' или 'd' и комбинаций 'a'+'s' 'd' тож.

Раскройте секрет способа реализации идеи.
Dalt вне форума Ответить с цитированием
Старый 16.01.2011, 07:10   #2
like-nix
Форумчанин
 
Регистрация: 09.11.2009
Сообщений: 104
По умолчанию

Я точно знаю что это можно сделать с использованием функции SetWindowsHookExW
like-nix вне форума Ответить с цитированием
Старый 25.01.2011, 22:31   #3
Dalt
Пользователь
 
Регистрация: 04.10.2010
Сообщений: 11
По умолчанию

в хуке на клаву через глобальную dll
как это реализовать?
Код:
LRESULT CALLBACK KeyboardHook(int nCode, WPARAM wParam, LPARAM lParam)
{
 if(!(lParam >> 31 & 1)) // клавиша нажата 

    {
        switch(wParam)
        {
            case VK_A: // нажали 'a'
//......вот тут как то поймать 'b' и затем что то такое сделать с 'd'.....//
                break;
        }

return ( CallNextHookEx( NULL, nCode, wParam, lParam ) );
}
как бы реализовать комбинацию

Последний раз редактировалось Dalt; 25.01.2011 в 23:16.
Dalt вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ HOTKEY coNsept Общие вопросы C/C++ 7 01.05.2010 10:35
HotKey Simply-Art Win Api 16 15.08.2008 12:10
KOL HotKey Simply-Art Помощь студентам 6 13.08.2008 11:01
Потомок от HotKey Alter Компоненты Delphi 4 03.01.2008 15:47