Я разрабатываю консольное приложение, в котором мне нужно обнаружить несколько горячих клавиш, таких как Ctrl + N, Ctrl +O и Ctrl + S. Вот часть кода, который я использую, чтобы признать эти горячие клавиши:Detect 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 +N и Ctrl + O. Но я не могу заставить его работать на . Ctrl + S. Проведя некоторое быстрое тестирование, я узнал, что нажимая Ctrl + S даже не делает ничего (что означает, что программа все еще ждет ввода пользователем чего-либо).
Эта проблема возникает только с . Комбинированный номер + S. Использование некоторых простых инструкций if
для любого другого модификатора (Shift например) и ключа (N, O и т. Д.) Отлично работает.
Почему это происходит? Есть ли специальное значение для Ctrl + S Комбинация? Можно ли сделать эту работу? Если да, то как?
CTRL-S попадает в консольную программу для приостановки вывода. Вот почему он не передается вашей заявке. Я не знаю, как его отключить. –
Я нашел это также: http://stackoverflow.com/a/9951471/2524589 – KSib