2

Предположим, я могу переключаться между 3 раскладками клавиатуры, английской, немецкой и испанской, из языковой панели Windows 7 32bit. Какую команду можно запустить из cmd, чтобы вернуть значение текущего используемого макета? Моя конечная цель - передать возвращенное значение во внешний редактор (Emacs), чтобы он мог изменять шрифт текста на основе текущей раскладки клавиатуры. То есть, если я напишу предложение на английском, шрифт будет font1, если на немецком font2 и так далее. Но это будет работать только в том случае, если я смогу получить какое-то возвращаемое значение (будь то номер локали страны или строковая строка english , german и т.д.) Из командной строки Windows.

1 ответ1

2

Редактировать: ниже фактически не будет делать то, что требует OP, так как значения не меняются, когда клавиатура переключается с помощью сочетания клавиш языковой панели, даже если они делают, если вы делаете это через панель управления. Оставляя для полноты.

Я не могу найти какие-либо задокументированные команды systeminfo или Powershell, которые могут получить эту информацию. Я думал, что что-то вроде этого может работать, но, увы, ни один из параметров для этого или других командлетов, кажется, не в состоянии получить эту настройку.

powershell -Command "& {(Get-culture).keyboardlayoutid;}"

Кажется, что в Windows 8 могут быть добавлены команды Powershell, которые делают это, но в Windows 7, похоже, вы не можете обнаружить изменения, сделанные таким образом.

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Следующее вернет текущие клавиатуры:

reg query "HKEY_CURRENT_USER\Keyboard Layout\Preload"

Это вернет список всех установленных клавиатур, с той, которая в данный момент используется как 1 .

HKEY_CURRENT_USER\Keyboard Layout\Preload
    1    REG_SZ    00000809
    2    REG_SZ    00000407
    3    REG_SZ    00000c0a

Для справки возвращенные значения перечислены здесь: msdn.microsoft.com/en-gb/goglobal/bb895996.aspx

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .