有没有办法在Mono控制台中使用Readline()来捕捉ctrl +?我正在使用Mono 2.10.2,当我按下ctrl-d时,没有任何反应。我不知道ReadLine()在按下它时会得到什么信号。
答案 0 :(得分:2)
ReadLine()
读取输入控制台的文本行。
控制键没有任何文本表示,因此它很容易被“捕获”。要捕获控制键,可以使用Console.ReadKey()
函数。
以下是documentation page for Console.ReadKey()
的示例。
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);