1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 59
1

Блокировка/разблокировка клавиши впоследствии нажатия комбинации клавиш

28.10.2018, 21:34. Показов 807. Ответов 5
Метки нет (Все метки)

Здравствуйте!

Есть задачка: нужно сделать программу, которая блокирует некую клавишу (например "А"), впоследствии нажатия комбинации клавиш, при повторном нажатии комбинации, клавиша разблокируется. В Интернете вычитал про SetWindowsHookEx вместе с WH_KEYBOARD_LL, но как реализовать SetWindowsHookEx я не знаю. В Интернете данный материал не очень понятен для меня.

Вот заготовка кода:

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
#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif
 
#include <Windows.h>
#include <iostream>
 
using namespace std;
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    bool check = false;
    char buffer[30];
    while (true)
    {
        system("pause");
        if (GetAsyncKeyState(VK_LCONTROL) && GetAsyncKeyState(VK_LSHIFT) && GetAsyncKeyState(VK_F2))
        {   /*Если комбинация нажата, то мы поднимаем флаг check, при повторном нажатии деактивация "блокировки"*/
            if (check == false)
            {
                //Тут как я думаю ,может быть функция блокирования
                check = true;
            }
            else
            {
                //Тут как я думаю ,может быть функция деблокирование
                check = false;
            }
        }
 
        if (check == true)
        {
            cout << "Блокируем\n";
        }
        else
        {
            cout << "Не блокируем\n";
        }
                cin >> buffer; /*Я думаю, тут можно и проверить роботу уже готовой программы */
    }
}
Да, код не идеален, но я просто хотел показать ход своих мыслей. Помогите начинающему программисту сделать блокировку/деблокировку клавишы. Заранее спасибо!
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2018, 21:34
Ответы с готовыми решениями:

Считывание нажатия комбинации клавиш
Суть такова, что не понимаю как отследить нажатие нескольких клавиш одновременно. Именно, нужно...

Определить нажатия комбинации клавиш
Привет, для одной клавиши делаю так private void MainWindow_KeyUp(object sender,...

Улавливание нажатия комбинации клавиш
Как сделать чтобы программа даже в свёрнутом режиме улавливала нажатие комбинации: Ctrl+D и делала...

Эмуляция нажатия комбинации клавиш
доброго времени суток) народ, кто знает, подскажите пожалуйста, такая ситуация: ...

5
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
28.10.2018, 21:44 2
В своём приложении?
0
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 59
28.10.2018, 21:46  [ТС] 3
Да. В открывающиеся консоле.
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
28.10.2018, 22:14 4
SetWindowsHook не подходит. Делай нормальное приложение и там отслеживай нажатия.
0
1 / 1 / 0
Регистрация: 19.10.2017
Сообщений: 59
28.10.2018, 23:52  [ТС] 5
К сожалению, в ООП ещё не разбираюсь и кроме SetWindowsHook ничего нашел
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
28.10.2018, 23:55 6
Там не нужно ООП.
SetWindowsHook будет перехватывать вообще все нажатия, а не для конкретного приложения.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 23:55
Помогаю со студенческими работами здесь

Отлов нажатия комбинации клавиш
Здравствуйте, уважаемые форумчане! Хотелось бы спросить, как сделать так чтобы когда нажимаешь...

Глобальный перехват нажатия комбинации клавиш
пытаюсь сделать я вот так function Key_Hook(Code: Integer; wParam: word; lParam: DWord):...

Завершение работы сервера из-за нажатия комбинации клавиш
Доброго всем времени суток!) Понадобилось создать простенькую программу типа слиент-сервер на...

Отслеживание нажатия комбинации клавиш в пределах формы
Нужно что бы при нажатие комбинации кнопок допусти &quot;Ctrl+S&quot; выполнялся код. И даже если форма не...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru