Библиотека вешает keyboard hook на события нажатий клавиш в windows и формирует события, когда заполняется буфер, соответствующий стратегии чтения.
Данная библиотека была написана для решения задачи захвата прокатки магнитных карт и сканирования кодов. Большинство таких устройств эмулирует клавиатуры(магнитные кард-ридеры, сканеры и т.д.). Т.к. коды обычно определенного формата(определенное количество символов, у магнитных карт есть стартовый и конечный символ), то поймать ввод такого ввода обычно не составляет труда(можно еще сверху проверить регулярным выражением вывод)
//доступны 3 конструктора(без параметров - событие чтения произойдет по нажатию enter)
_listener = new KeyboardListener();
//передача int в ctor. Событие произойдет при вводе 10 символов
_listener = new KeyboardListener(10);
//передача стартового и конечного символа в конструктор. Событие произойдет при вводе строки с подходящими символами.
_listener = new KeyboardListener(';', '?');
//подписка на событие
_listener.NewText += _listener_NewText;
//обработчик
private void _listener_NewText(object sender, NewStringEventArgs e)
{
_logger.Info("Keyboard event captured");
_logger.Info(e.Text);
}
//возможна смена стратегии чтения и сброс библиотеки
_listener.ChangeReadStrategy(10);
_listener.Reset();