Это довольно известный факт, что MSKLC не может точно импортировать и воспроизводить раскладки клавиатуры для всех файлов .DLL, поставляемых Windows, особенно файлов в Windows 8 и выше. И не стоит знать, где находятся эти файлы, если вы не можете извлечь из них какую-либо значимую или полезную информацию.
Это задокументировано Майклом Капланом в его блоге (он был разработчиком MSKLC), который, как я вижу, вы указали выше.
Когда MSKLC встречает что-либо, чего он не понимает, эта часть удаляется.
Извлечение раскладки с использованием MSKLC будет работать для большинства клавиатур, но есть несколько - а именно клавиатура Cherokee, а также японская и корейская клавиатуры (если назвать несколько, я не уверен, сколько их еще) - для которых извлеченные Раскладка НЕ будет точно или полностью отражать фактическое использование и особенности клавиатуры.
Клавиатура Cherokee имеет цепочку мертвых клавиш, которые MSKLC не поддерживает. А на дальневосточных клавиатурах есть клавиши-модификаторы, о которых MSKLC не знает - это означает, что целые слои / состояния сдвига отсутствуют!
Майкл Каплан предоставляет некоторый код и раскрывает некоторые секреты MSLKC и сопутствующего программного обеспечения, которое можно использовать для преодоления некоторых из этих ограничений, но для этого требуется изрядное количество действий вручную - именно то, что вы пытаетесь избежать! Кроме того, цели Майкла направлены на создание клавиатур с функциями, которые MSKLC не может создавать или понимать, но которые работают в Windows (что противоположно тому, что пытается достичь OP).
Я уверен, что мое решение слишком поздно, чтобы быть полезным для ОП, но, возможно, оно будет полезно в будущем кому-то в аналогичной ситуации. Это моя надежда и причина опубликовать это.
Пока все, что я сделал, это объяснил, что других ответов недостаточно. Даже самый лучший не сможет и не сможет полностью и точно воспроизвести все встроенные клавиатуры Windows и отобразить их в исходные файлы KLC. Это действительно прискорбно, и, конечно, это не вина его автора, потому что это очень умный кусок кода / скрипта! К счастью, скрипт и исходные файлы (чья ссылка может работать, а может и не работать) полезны и эффективны для большинства клавиатур Windows, а также для любых пользовательских клавиатур, созданных MSKLC.
Клавиатуры, имеющие расширенные функции, которые не поддерживает MSKLC, были созданы Windows DDK, но эти функции официально не задокументированы. Хотя об их потенциале можно немного узнать, изучив исходные файлы, поставляемые с MSKLC.
К сожалению, единственное решение, которое я могу предложить, - это стороннее платное программное обеспечение под названием KbdEdit . Я считаю, что это единственное доступное в настоящее время решение, которое действительно способно точно декодировать и воссоздавать любую из предоставленных Windows клавиатур - хотя есть несколько расширенных функций, которые даже он не может воспроизвести (например, комбинации клавиш / горячие клавиши, которые выполняют специальный родной язык функции, например: Ctrl + CapsLock для активации KanaLock (японский слой-модификатор). KbdEdit ДОЛЖНО точно воспроизводит тот слой-модификатор, который MSKLC удаляет, он просто не поддерживает этот альтернативный метод активации этого состояния сдвига, если вы этого не сделаете иметь японскую клавиатуру с клавишей блокировки Kana, хотя она позволит вам преобразовать клавишу на клавиатуре в клавишу Kana (возможно, Scroll Lock?).
К счастью, ни одна из этих неподдерживаемых функций даже не применима к экранной клавиатуре.
KbdEdit - действительно мощный и удивительный инструмент, и он стоил каждого пенни, за который я заплатил! (И это НЕ то, что я бы сказал практически о любом другом платном программном обеспечении…)
Хотя KbdEdit является сторонним программным обеспечением, оно необходимо только для создания клавиатур, а не для их использования. Все клавиатуры, которые он создает, работают в любой системе Windows без установки KbdEdit.
Поддерживает додо 15 состояний модификаторов и три дополнительные клавиши модификаторов, одна из которых переключается, как CapsLock. Он также поддерживает цепные мертвые клавиши и переназначение любых клавиш на большинстве клавиатур.