Я собираюсь запустить консольное приложение. проблема заключается в том, как определить, что клавиша CTRL нажата отдельно, без какого-либо другого ключа.как проверить, нажата ли клавиша CTRL в приложении консоли C#
using System;
using System.Text;
public class ConsoleKeyExample
{
public static void Main()
{
ConsoleKeyInfo input;
do
{
input = Console.ReadKey(true);
StringBuilder output = new StringBuilder(String.Format("You pressed {0}",input.Key.ToString()));
Console.WriteLine(output.ToString());
if ((input.Modifiers & ConsoleModifiers.Control) != 0)
{
Console.WriteLine("CTRL Pressed");
}
} while (input.Key != ConsoleKey.Escape);
}
}
Я хочу контролировать поведение клавиши CTRL. после прослеживания этого кода, я поставил контрольную точку на строке readkey. но когда я нажимаю CTRL, ничего не происходит, но когда я нажимаю любую другую клавишу типа «K», она начинает считывать ключ с клавиатуры
Консольные приложения зависит от входного потока, так что, если некоторые фактические символы не будут вставлены в поток, вы не можете обнаружить нажатий клавиш. –
Что мне делать, мне нужно контролировать поведение клавиш CTRL в приложении консоли – Nautilus
К сожалению, я не думаю, что есть способ сделать это, не используя P/Invoke для Windows API и используя это для контроля нажатий клавиш. Как я уже сказал, основным источником входных данных приложения Console является входной поток, и если keypress не помещает символы в этот поток ввода, я не знаю, как вы могли бы его обнаружить. –