[英]How can i get the Ctrl+C as input in console
我想在控制台中使用ctrl + c作為輸入。 我可以禁用 ctrl + c來終止控制台。 但是我不能使用ctrl + c來獲取輸入。 我如何獲得ctrl + c作為輸入????
Console.CancelKeyPress += (object sender, ConsoleCancelEventArgs e) =>
{
var isctrlc = e.SpecialKey == ConsoleSpecialKey.ControlC;
if (isctrlc)
{
e.Cancel = true;
}
};
k = Console.ReadKey(true);
if((k.Modifiers & ConsoleModifiers.Control) != 0)
{
if((k.Key & ConsoleKey.C)!=0)
{
break;
}
}
您可以設置e.Cancel = true; 在CancelKeyPress事件處理程序中。 我已經測試了以下代碼片段。 有用。
class Program
{
static void Main(string[] args)
{
Console.CancelKeyPress += Console_CancelKeyPress;
while (true)
{
Thread.Sleep(100);
Console.WriteLine("..");
}
}
private static void Console_CancelKeyPress(object sender, ConsoleCancelEventArgs e)
{
e.Cancel = true;
Console.WriteLine("Cancel key trapped. Execution will not terminate.");
}
}
更新:
您可以使用以下屬性來實現所需的功能。
Console.TreatControlCAsInput = true;
while (true)
{
var k = Console.ReadKey(true);
if ((k.Modifiers & ConsoleModifiers.Control) != 0)
{
if ((k.Key & ConsoleKey.C) != 0)
{
break;
}
}
Thread.Sleep(100);
Console.WriteLine("..");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.