1
我正在开发中,我需要检测多个热键控制台应用程序如Ctrl键 + Ñ,Ctrl键 + ö和Ctrl键 + 小号。下面的代码的一部分,我用它来识别这些热键:检测Ctrl + S键在控制台
ConsoleKeyInfo input = Console.ReadKey(true);
if (input.Modifiers == ConsoleModifiers.Control)
{
if (input.Key == ConsoleKey.N)
{
// ...
}
else if (input.Key == ConsoleKey.O)
{
// ...
}
else if (input.Key == ConsoleKey.S)
{
//...
}
}
上面的代码没有任何问题适用于按Ctrl +ñ和按Ctrl +Ø。但是,我无法得到它的工作Ctrl + S。在做了一些快速测试后,我发现按Ctrl + S甚至没有做任何事情(意味着程序仍然在等待用户键入内容)。
此问题只发生在Ctrl + S。使用一些简单的if
语句为任何其他修饰符(例如移位)和密钥(N,O等)工作正常。
为什么会发生这种情况? 是否有特殊含义Ctrl + S组合?是否有可能做到这一点?如果是,如何?
CTRL-S被控制台程序捕获以暂停输出。这就是为什么它没有传递给你的应用程序。我不知道如何禁用它。 –
我也发现这个:http://stackoverflow.com/a/9951471/2524589 – KSib