K>Кстати, я послал вопрос на несколько форумов, и только здесь мне ответили по существу
K>Вот кусок кода, который получает один char, может кому пригодится:
K>USHORT ProcessInput() {
K> UNICODE_STRING KeyboardName = RTL_CONSTANT_STRING(L"\\Device\\KeyboardClass0");
...
Я не зря говорил про 100 клавиатур.
В NT варианте autochk действительно использовалась только клавиатура 0, но начиная с Win2K autochk стала открывать 100 клавиатур.
Я за свою практику встречал один случай, когда клавиатура 0 не работала, а работала номер 2. Как такое получилось и как это воспроизвести я не знаю, но это именно этот случай заставил меня сканировать 100 клавиатур. Но сканирование я делал только до первого символа, далее работал только с определенной клавиатурой. Я думаю маловероятно, что будут подключены сразу две клавиатуры и ввод будет с обоих.