2 / 2 / 2
Регистрация: 28.08.2013
Сообщений: 26

Отловить нажатие клавиши в консоли

20.11.2013, 15:41. Показов 4467. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Необходимо отловить нажатие клавиши пробел или Enter, когда я не нахожусь в консоли, то есть она свернута. Подскажите, как это можно сделать? (нашел некоторые отрывки, но может кто поможет привести эти отрывки в систему)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2013, 15:41
Ответы с готовыми решениями:

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

Как в консольном приложении отловить нажатие определённой клавиши?
Как в консольном приложении отловить нажатие определённой клавиши?

Отловить нажатие левой клавиши мыши вне своего приложения
Привет всем, в общем наткнулся на такую проблему, нужно отловить нажатие ЛКМ, если оно произошло то нажать другую кнопку, как нажать...

7
 Аватар для ITALIANEZ
57 / 56 / 17
Регистрация: 28.07.2009
Сообщений: 201
20.11.2013, 15:54
посмотри эту тему, по моему то, что надо.
Отловить нажатие сочетания клавиш глобально
1
2 / 2 / 2
Регистрация: 28.08.2013
Сообщений: 26
20.11.2013, 15:58  [ТС]
Огромное спасибо
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
20.11.2013, 16:09
Можно так:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Threading;
 
static class KeyPress
{
    [System.Runtime.InteropServices.DllImport( "user32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto, ExactSpelling = true )]
    public static extern short GetAsyncKeyState( int vkey );
 
    public enum Key { Enter, Space };
    public delegate void keyPress( Key Key );
    public static event keyPress OnKeyPressed;
    static Thread th = new Thread( x =>
    {
        while ( true )
        {
            if ( OnKeyPressed != null )
            {
                if ( GetAsyncKeyState( 0x0D ) != 0 )
                    OnKeyPressed( Key.Enter );
 
                if ( GetAsyncKeyState( 0x20 ) != 0 )
                    OnKeyPressed( Key.Space );
            }
 
            Thread.Sleep( 100 );
        }
    } );
 
    public static void Start()
    {
        th.Start();
    }
 
    public static void Stop()
    {
        th.Abort();
    }
}
 
class Program
{
    static void Main( string[] args )
    {
        KeyPress.OnKeyPressed += KeyPress_OnKeyPress;
        KeyPress.Start();
 
        while ( true )
        {
        }
    }
 
    static void KeyPress_OnKeyPress( KeyPress.Key Key )
    {
        if ( Key == KeyPress.Key.Enter )
            Console.Write( "Enter" );
        if ( Key == KeyPress.Key.Space )
            Console.Write( "Space" );
    }
}
На мой взгляд самый простой вариант.
1
1057 / 864 / 195
Регистрация: 31.03.2010
Сообщений: 2,521
20.11.2013, 16:16
Дмитрий3241, не сработает если окно консоли неактивно
0
2 / 2 / 2
Регистрация: 28.08.2013
Сообщений: 26
20.11.2013, 16:16  [ТС]
Спасибо, его тоже попробую)
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
20.11.2013, 16:29
Learx, проверь, работает.
0
 Аватар для Дмитрий3241
660 / 530 / 137
Регистрация: 07.07.2011
Сообщений: 1,232
Записей в блоге: 6
20.11.2013, 16:31
Вот даже архивчик.
Вложения
Тип файла: rar ConsoleApplication2.rar (2.8 Кб, 30 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.11.2013, 16:31
Помогаю со студенческими работами здесь

Как отловить нажатие мыши или клавиш в консоли
допустим есть меню, как сделать так чтоб, можно было между пунктами меню перемещаться по нажатиям клавиш или нажатием мышки

В переменную считать нажатие клавиши из консоли
Добрый вечер, форумчане. Как сделать так, чтобы в переменную считывалась нажатая клавиша из консоли, без нажатия энтера? Аналог getche()...

Создание HotKeys (Отловить нажатие клавиши Esc)
Добрый день, товарищи. Подскажите советом - создана форма с BorderStyle = None, на ней лежит во весь рост Panel. Нужно отловить нажатие...

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

Отловить нажатие клавиши клавиатуры из другого аккаунта Windows
Может, вопрос глупый, но задам... Пишу на C#. Устанавливаю глобальный хук на клавиатуру. Все нажатия клавиш клавиатуры отлично...


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

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

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru