Я пытаюсь эмулировать функциональность гипертерминала для своей последовательной связи на С#, обнаруживая нажатия клавиш определенных комбинаций клавиш (экранирующих последовательностей), которые нельзя напечатать, например Ctrl+C, Ctrl+Z и т. д. Я понимаю, что эти клавиши имеют свой ASCII эквиваленты и могут быть переданы как таковые. Но у меня возникают проблемы с обнаружением нескольких нажатий клавиш. Часть моего кода предоставляется в качестве ссылки:
private void Transmitted_KeyDown(object sender, KeyEventArgs e)
{
if (e.Modifiers == Keys.Control || e.Modifiers== Keys.Shift || e.Modifiers==Keys.Alt)
{
var test = (char)e.KeyValue; // Only able to detect a single keypress!
ComPort.Write(test.ToString());
}
}