Вы получите вход от обоих. Не одновременно , конечно. Все это будет помещено в очередь, но Windows будет обрабатывать ключевые события с обеих клавиатур.
Не будь беспомощным. Как предлагает Дэвид Хеффернан, вы можете легко понять это самостоятельно, подключив обе клавиатуры к компьютеру, открыв Блокнот и напечатав случайные символы, чтобы увидеть, какая из них генерирует ввод.
Вы отвечаете, что хотите «проверить это с помощью кода C #», но я понятия не имею, что это значит. Как насчет создания консольного приложения, которое считывает ввод с клавиатуры и отображает его на экране?
using System;
class AdvancedKeyboardTester
{
static void Main(string[] args)
{
for (; ;)
{
Console.ReadKey();
}
}
}
Нажмите Ctrl + C , когда вы устали от удовольствия и хотите выйти из программы.
Редактировать: Звучит так, как будто вы ищете RegisterRawInputDevices
функцию , которая позволяет вам включить необработанный ввод для всех ваших клавиатур, а затем перечислять результаты чтобы определить, на какое устройство отправлено сообщение.
К счастью, похоже, что кто-то уже написал для этого библиотеку оболочки C #, доступную для загрузки в Code Project: Использование необработанного ввода из C # для обработки нескольких клавиатур
Редактировать 2: (кажется, информация просто продолжает обманываться из комментариев)
Если вы используете сканер штрих-кода, это становится намного проще. Поскольку они явно предназначены для этой цели, они почти все программируются . Это означает, что вы можете сказать им префикс (и / или суффикс) их ввода с некоторыми символами стража, которые указывают, что ввод поступает со сканера штрих-кода, а не со стандартной клавиатуры. (Обратитесь к руководству пользователя вашего сканера штрих-кода за дополнительной информацией.) Затем все, что вам нужно сделать, это отфильтровать ввод с клавиатуры на основе наличия или отсутствия этих часовых символов. Вы также можете проверить, насколько быстро были введены символы между префиксом и суффиксом.