Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

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

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

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

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

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

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

Код:
#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, 11:08   #8
Stilet
Белик Виталий :)
Профессионал
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Адрес: Украина, Донецкая область, г. Краматорск
Сообщений: 57,815
Репутация: 6832
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выполнение цикла до нажатия определенной клавиши 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 15:44
Подскажите, как в консольном приложении заставить программу ждать нажатия клавиши(си)) Александр Елис Помощь студентам 2 19.09.2009 19:38


13:20.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru