Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
n0n4m3r
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
1

Чтение с клавиатуры ситемной клавиши F5 в консоли

17.02.2015, 13:06. Просмотров 913. Ответов 4
Метки нет (Все метки)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
/*#include <string>
#include <ctime>*/
#include <Windows.h>
 
int main(int argc, char *argv[]){
    setlocale(NULL, "rus");
    int m = _getch(); //Тут пробовал считать с клавиатуры код клавиши
    std::cout << m << '\n'; //Чтобы тут посмотреть, но оказался ноль, как и для других системных клавиш
    while (m == 74){ // 0x74 == VK_F5
        std::cout << "F5 нажата!\n";
    }
 
 
    system("pause");
    return 0;
}
Так вот, как можно считать виртуальную клавишу? Или как можно считать нажатую клавишу F5 в консоли.
VS2013
Может у кого есть готовое решение или совет?
Клавиши F1-F12 в консоли, и работа с мышкой в консоли читал.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.02.2015, 13:06
Ответы с готовыми решениями:

Клавиши F1-F12 в консоли, и работа с мышкой в консоли
Я искал на сайте, но не нашел упоминания о том как обрабатывать и или узнавать...

Нажатие клавиши в консоли
Есть ли метод для нажатия клавиши (любой) в консоли? Т.е. нажал, к примеру, на...

Авто нажатие клавиши в консоли
Народ помогите... вывожу cmd system(&quot;prog -i&quot;); выводит Y или N.. как...

Выход из консоли по нажатию клавиши
Что надо вставить, что бы по нажатию клавиши, скажем, &lt;Enter&gt; произошел выход...

Переделать в коде чтение из файла в чтение с клавиатуры
Переделайте что бы текст считывался с клавиатуры, а не с файла! Буду благодарен...

4
castaway
Эксперт С++
4932 / 3038 / 454
Регистрация: 10.11.2010
Сообщений: 11,117
Записей в блоге: 10
Завершенные тесты: 1
17.02.2015, 13:39 2
Лучший ответ Сообщение было отмечено n0n4m3r как решение

Решение

Можно например так (через хук).
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
#include <iostream>
#include <windows.h>
 
static LRESULT CALLBACK ll_keyboard_hook_cb( int nCode, WPARAM wParam, LPARAM lParam ) {
    if ( nCode >= 0 ) {
        if ( wParam == WM_KEYDOWN ) {
            LPKBDLLHOOKSTRUCT p_kbds = reinterpret_cast<LPKBDLLHOOKSTRUCT>( lParam );
            switch ( p_kbds->vkCode ) {
                case VK_ESCAPE:
                    PostQuitMessage( 0 );
                    break;
 
                case VK_F5:
                    std::cout << "F5\n";
                    break;
            }
        }
    }
    return CallNextHookEx( 0, nCode, wParam, lParam );
}
 
int main()
{
    HHOOK hHook = SetWindowsHookEx( WH_KEYBOARD_LL, ll_keyboard_hook_cb, GetModuleHandle( NULL ), 0 );
 
    MSG msg;
    while ( GetMessage( &msg, NULL, 0, 0 ) ) {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
 
    UnhookWindowsHookEx( hHook );
    return 0;
}
1
Croessmah
++Ͻ
14631 / 8380 / 1582
Регистрация: 27.09.2012
Сообщений: 20,593
Записей в блоге: 2
Завершенные тесты: 1
17.02.2015, 13:39 3
C++
1
GetKeyState(VK_F5)
0
castaway
Эксперт С++
4932 / 3038 / 454
Регистрация: 10.11.2010
Сообщений: 11,117
Записей в блоге: 10
Завершенные тесты: 1
17.02.2015, 16:16 4
Цитата Сообщение от n0n4m3r
Спасибо, хорошо отработало (буду адаптировать под свои нужды), может подскажете где более "простым" языком почитать обо всем, что находится внутри.
Либо же стоит углубиться и читать тот же MSDN?
Тут всего 7 функций, проще всего с ними разобраться на MSDN.
0
n0n4m3r
25 / 25 / 15
Регистрация: 12.10.2013
Сообщений: 183
17.02.2015, 16:22  [ТС] 5
castaway, благодарю!
0
17.02.2015, 16:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.02.2015, 16:22

Переназначить событие клавиши ENTER в консоли
Добрый день. У меня есть массив, мне его нужно заполнить числами с клавиатуры....

По нажатию клавиши выделять текст в консоли
с помощью текстового редактора создать файл, содержащий текст, длина которого...

Обработка события нажатия клавиши мыши в консоли
Здравствуйте господа програмисты!!!Может кто нибудь написать элементарный...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru