Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
2 / 2 / 2
Регистрация: 28.08.2013
Сообщений: 26

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

20.11.2013, 15:41. Показов 4447. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru