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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2014, 16:15   #1
p0keT
Пользователь
 
Регистрация: 09.10.2014
Сообщений: 13
По умолчанию c++ запрет нажатия определенной клавиши в консольном приложении (Visual Studio) W8

Здравствуйте, мне нужно, что бы при нажатии сочетания клавиш(L. Shift+ L. Ctrl + F1) сделать нерабочей клавишу "1", а при повторном нажатии этого сочетания она снова становится рабочей.
Например, я написал простую программу в которой я заношу с консоли в переменную некую строку, и после нажатия этого сочетания я не мог ввести цифру "1".
p0keT вне форума Ответить с цитированием
Старый 14.11.2014, 16:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Тут думаю два простых варианта:
1) Делать эту клавишу Хоткеем (должно прокатить, я так принтскрин блокировал)
2) Отлавливать ее Хуком.
собственно и то и другое требует знания WinAPI. Соответственно вопрос: Про RegisterHotKey() или SetWindowsHookEx() что-нибудь знаешь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2014, 18:26   #3
p0keT
Пользователь
 
Регистрация: 09.10.2014
Сообщений: 13
По умолчанию

нет,
но как вижу придется разбираться
p0keT вне форума Ответить с цитированием
Старый 14.11.2014, 19:54   #4
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Это надо для вашего приложения или глобально?
waleri вне форума Ответить с цитированием
Старый 14.11.2014, 21:06   #5
p0keT
Пользователь
 
Регистрация: 09.10.2014
Сообщений: 13
По умолчанию

для приложения
p0keT вне форума Ответить с цитированием
Старый 14.11.2014, 21:21   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Тогда хуки не нужны. RegisterHotKey() абсолютно достаточно будет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2014, 23:31   #7
Jurijus123
Заблокирован
 
Регистрация: 12.11.2014
Сообщений: 120
По умолчанию

Можно вот так:

Код:
#include <windows.h>
#include <iostream> 
int main()




{
a:
 
		if((GetAsyncKeyState(VK_MENU)&(1<<(sizeof(SHORT)*8)))&&(GetAsyncKeyState(VK_CONTROL && VK_SHIFT && VK_ESCAPE)&(1<<(sizeof(SHORT)*8))));
		{

keybd_event(VK_MENU, 0,0,0);
keybd_event(VK_F4, 0,KEYEVENTF_KEYUP,0);

		}




	 goto a;
   return 0;
}
Jurijus123 вне форума Ответить с цитированием
Старый 15.11.2014, 10:08   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Можно вот так:
Вот как раз так лучше не делать )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение цикла до нажатия определенной клавиши apeorin Общие вопросы C/C++ 12 13.11.2012 23:54
Информация в консольном приложении demigod82 Общие вопросы C/C++ 1 10.03.2012 09:26
Запрет нажатия кнопки и запрет неправильного ввода данных De_Kurlzz Помощь студентам 1 15.06.2011 15:14
Эмуляция нажатия клавиши в любом активном приложении Marsel737 Общие вопросы Delphi 1 19.03.2010 14:44
Подскажите, как в консольном приложении заставить программу ждать нажатия клавиши(си)) Александр Елис Помощь студентам 2 19.09.2009 19:38