У меня есть приложение winforms, где мне нужно захватить ввод с клавиатуры и сохранить его в сценарии. Затем сценарий можно воспроизвести с помощью IronPython для автоматизации приложения. Мой текущий подход заключается в том, чтобы прослушивать события KeyPress и повторно отправлять нажатый символ с помощью SendKeys.Send (). Для обработки ввода с помощью модификаторов (alt, ctrl) я слушаю событие KeyDown, но здесь я не знаю, как представить клавиши, нажимаемые в скрипте. Вот что я хотел бы сделать:
public void TextBox_KeyDown(KeyEventArgs e)
{
Script.AddStatement(string.Format("SendKeys.Send('{0}')", ????));
}
Нужно ли вручную создавать строку из KeyEventArgs, которую понимает SendKeys?
Например, shift + A, shift + B становится SendKeys.Send ("+ (AB)"). Подробности от MSDN .
Есть ли другой способ? Может быть, сохранить KeyEventArgs.KeyData, создать новый экземпляр KeyEventArgs и как-нибудь отправить его?