Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.07.2018, 10:09   #1
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
Вопрос При нажитие Control`а и чего ни будь ещё, выводится непонятное.

Помогите пожалуйста! Как это исправить? С Alt или Shift норм, а с Control выводится непонятное или вообще не выводится. Код скину по ниже.
Снимок.PNG

Вот код программы:
Код:
using System;
class ReadKeys
{
    static void Main()
    {
        ConsoleKeyInfo keypress;
        Console.WriteLine("Введите несколько символов, " +
        "а по окончании - <Q>.");
        do
        {
            keypress = Console.ReadKey(true); // считать данные о нажатых клавишах
            Console.WriteLine("Вы нажали клавишу: " + keypress.KeyChar);
            // Проверить нажатие модифицирующих клавиш.
            if ((ConsoleModifiers.Alt & keypress.Modifiers) != 0)
                Console.WriteLine("Нажата клавиша <Alt>.");
            if ((ConsoleModifiers.Control & keypress.Modifiers) != 0)
                Console.WriteLine("Нажата клавиша <Control>.");
            if ((ConsoleModifiers.Shift & keypress.Modifiers) != 0)
                Console.WriteLine("Нажата клавиша <Shift>.");
        } while (keypress.KeyChar != 'Q');
    }
}

Спасибо за помощь!

P.S: в это код из учебника, и это не обсуждалось!
Мaкс вне форума Ответить с цитированием
Старый 24.07.2018, 10:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Мaкс Посмотреть сообщение
это код из учебника, и это не обсуждалось!
ну, раз не обсуждалось, то можно обсудить

msdn предлагает чуть-чуть другой вариант - https://msdn.microsoft.com/ru-ru/lib...v=vs.110).aspx

Цитата:
Код:
using System;

class Example 
{
   public static void Main() 
   {
      ConsoleKeyInfo cki;
      // Prevent example from ending if CTL+C is pressed.
      Console.TreatControlCAsInput = true;

      Console.WriteLine("Press any combination of CTL, ALT, and SHIFT, and a console key.");
      Console.WriteLine("Press the Escape (Esc) key to quit: \n");
      do 
      {
         cki = Console.ReadKey();
         Console.Write(" --- You pressed ");
         if((cki.Modifiers & ConsoleModifiers.Alt) != 0) Console.Write("ALT+");
         if((cki.Modifiers & ConsoleModifiers.Shift) != 0) Console.Write("SHIFT+");
         if((cki.Modifiers & ConsoleModifiers.Control) != 0) Console.Write("CTL+");
         Console.WriteLine(cki.Key.ToString());
       } while (cki.Key != ConsoleKey.Escape);
    }
}
// This example displays output similar to the following:
//       Press any combination of CTL, ALT, and SHIFT, and a console key.
//       Press the Escape (Esc) key to quit:
//       
//       a --- You pressed A 
//       k --- You pressed ALT+K 
//       ► --- You pressed CTL+P 
//         --- You pressed RightArrow 
//       R --- You pressed SHIFT+R 
//                --- You pressed CTL+I 
//       j --- You pressed ALT+J 
//       O --- You pressed SHIFT+O 
//       § --- You pressed CTL+U
проверьте, с этим кодом...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.07.2018, 10:39   #3
Мaкс
Форумчанин
 
Регистрация: 12.06.2018
Сообщений: 831
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
проверьте, с этим кодом...
Работает! Спасибо! Даже клавиши типа Home, Windows, End и т.д. работают! Но регистр не замечает, но это просто исправить, знаю как!
Изображения
Тип файла: png Снимок.PNG (36.3 Кб, 10 просмотров)

Последний раз редактировалось Мaкс; 24.07.2018 в 10:51.
Мaкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непонятное возникновение ошибки при работе с массивом Xo66um Общие вопросы Delphi 5 15.11.2014 13:26
Практическая работа по web, html и ещё чего-то там nebankrot Фриланс 2 20.12.2011 18:53
C# Слои или ещё чего Ramirag Помощь студентам 2 25.08.2011 11:31
Непонятное при записи в файл Exeil Общие вопросы C/C++ 0 27.11.2010 20:24