Перейти к содержимому


Фото

FAQ: Добавление раскладки клавиатуры


  • Чтобы отвечать, сперва войдите на форум
2 ответов в теме

#1 Pavel Belevsky

Pavel Belevsky

    Advanced Member

  • VIP Members
  • ФишкаФишкаФишка
  • 2 795 Сообщений:
  • Web Blog:http://msembedded.ru/archives/author/pavel-belevsky

Опубликовано 22.06.2009 - 22:49

В связи с популярностью первоначальной темы (http://www.msembedde...aspx?PostID=877) я решил разобраться с данной задачей. Можно было бы сразу дать готовое решение, но хочется, чтобы участники форума становились разработчиками, а не пользователями готовых наработок. Поэтому на примере рассматриваемой задачи привожу небольшую инструкцию, которая поможет в решении подобных задач. Сразу оговорюсь, что нижеизложенные действия выполнялись в среде Windows XP Embedded SP2 + FP2007 + UR1 + русский MUI, которая установлена на машине с английской версией Windows XP Professional.
Чтобы добиться желаемой работы Windows XP Embedded (Windows Embedded Standard) следует обеспечить в образе системы наличие необходимых файлов и настроек реестра. Очевидные условия - как их добиться. Функциональность в плане файлов будем анализировать, используя Target Designer и руководствуясь здравым смыслом и рекомендациями первоначальной темы. С реестром немного посложнее, но решаемо. При разбиении настольной Windows XP Proffessional на компоненты, невозможно было соблюсти полную идентичность, в частности по настройкам реестра. Поэтому следует открыть в себе экспериментатора, немного проявить способности аналитика и выявить необходимые настройки. Для этого понадобится система с установленной ОС Windows XP Professional и утилита для анализа изменения настроек реестра. Для подобных целей и не только можно воспользоваться, например, утилитой Process Monitor (http://technet.micro...s/bb896645.aspx). Эта очень полезная утилита позволяет отслеживать всевозможные изменения в системе, включая реестр и файловую систему. Итак, для выполнения первого условия, используя логику и информацию из первоначальной темы, в образ следует добавить: English Language Support, Russian Language Support, а также IME Prototype. Для отображения некоторых компонентов в каталоге Target Designer следует уменьшить порог видимости (Minimum visibility) в настройках Target Designer. Экспериментировать можно на Virtual PC (http://www.microsoft...al-pc-2007.aspx), для которого есть готовый компонент (Virtual PC 200x Helper Macro). Разворачивать образ системы на виртуальный жесткий диск удобнее при помощи утилиты vhdmount из поставки Virtual Server 2005 R2 (http://www.microsoft.com/windowsserversystem/virtualserver/). Чтобы увидеть работу переключателя раскладок клавиатуры, кроме указанных выше компонентов добавляется стандартная оболочка Windows (компонент Explorer Shell) и апплет для панели управления, в котором выполняется добавление раскладок (компонент International Control Panel). Далее выполняется разрешение зависимостей, в ходе которого добавляются все нужные компоненты. Проанализируем перечень добавленных компонентов относящихся к языковой поддержке. Поскольку данный экспериментальный образ невелик, то легко вычленить интересующие компоненты. Это компоненты, которые начинаются со слов: Codepage, Fonts, Keyboard, Language, User locale и отвечающие, соответственно, за поддержку кодовых страниц, шрифтов, раскладку клавиатуры, языка и региональных настроек. Обратив внимание на компоненты раскладок клавиатуры можно отметить отсутствие компонента для поддержки русской раскладки. Откроем свойства компонента Russian Language Support и поставим галочку в разделе Keyboard Layouts. После разрешения зависимостей в образ будет добавлено несколько компоннетов один из которых относится непосредственно к поддержке русской раскладки - Keyboard: Russian. Поскольку планируется использование региональных настроек отличных от стандартных, т.е.английских, то откроем настройки компонента с говорящим за себя названием - Regional and Language Options. Если необходим руссифицированный интерфейс (руссификация 
выполнена в масштабе, необходимом по мнению разработчиков средств разработки), то в качестве User interface language следует выбрать Russian. При этом путем небольшого эксперимента с настройками становится ясно, что русский язык для не-Unicode программ можно выбрать только если интерфейс русский. В качестве языка по умолчанию рекомендуется оставить английский. Для этого есть ряд причин, одной из которых является аутентификация при первом входе в систему. На этом настройка и компоновка в части языковой поддержки может быть закончена. Теперь следует собрать образ и проанализировать настройки реестра ещё до развертывания образа и прохождения FBA. Определить настройки реестра для поддержки русской раскладки можно в настольной Windows XP системе при промощи утилиты Process Monitor. Для этого стандартным способом (апплет Regional and Language Options панели управления, закладка Language) добавляется русская раскладка клавиатуры (если раскладка уже присутсвует в системе, то её следует предварительно удалить) и анализируется связанное с данным действием изменение реестра в утилите Process Monitor. Для удобства в утилите предусмотрены фильтры, которые позволяют отбросить лишнюю информацию. Поскольку в данном случае интересует только изменение реестра, то следует оставить включенной лишь активность реестра (Show Registry Activity) и добавить фильтр на установку значения параметра реестра (Operation - is - RegSetValue). Этого вполне достаточно, чтобы исключить подавляющее  количество лишней информации. Потренировавшись с Process Monitor можно настроить фильтры более точно. Итак, в результате добавления русской раскладки были добавлены настройки реестра в ветви HKCU\Keyboard\Layout и HKCU\Software\Microsoft\CTF. Обе ветви ведут к настройкам текущего пользователя (Current User). Данная категория настроек неудобна тем, что формируется во время первичной инициализации системы и непосредственно недоступна до развертывания системы. Но не все так безнадежно. Настройки текущего пользователя формируются на основе настроек пользователей по умолчанию, которые доступны до развертывания и находятся в ветви HKEY_USERS\.DEFAULT. Данный куст реестра хранится в файле DEFAULT. Чтобы просмотреть настройки реестра в offline-режиме  следует воспользоваться программой для просмотра и редактирования реестра из поставки Windows XP - Registry Editor(regedit.exe). Для этого выбирается корневая ветвь, например, HKEY_LOCAL_MACHINE, в главном меню выбирается пункт File, затем Load Hive и указывается путь размещения файла интересующего куста. В данном случае это файл DEFAULT размещенный в папке Windows\system32\config собранного образа системы. Сравнивая настройки в Process Monitor и полученного образа, становится  ясно, что не достает настроек в подключе Keyboard Layout\Preload и Keyboard Layout\Toggle. Как можно догадаться в Preload содержится список раскладок для загрузки, а в Toggle настройки сочетания клавиш для переключения раскладок. Для начала указанные настройки можно добавить, воспользовавшись разделом Extra Registry Data в средней панели Target Designer, а в последствии оформить в компонент. Настройки для ветви HKCU\Software\Microsoft\CTF формируются программой CTFMON.EXE, поэтому оставим их без внимания в надежде, что они будут добавлены автоматически при запуске программы - эксперимент является неотъемлемой частью работы разработчика.  Перед пересборкой образа следует выгрузить в программе Registry Editor загруженный ранее куст реестра, выделив его и выбрав в главном меню пункт File и затем Unload Hive.  Далее выполняется пересборка образа и развертывание на целевом устройстве. В результате будет получена система, в которой сразу присутствуют английская и русская раскладка клавиатуры.
Изложенный подход может быть применен для решения широкого класса задач возникающих при разработке встраиваемых систем на базе Windows XP Embedded /Windows Embedded Standard.

 


Павел Белевский
Ведущий специалист отдела исследований и разработок
Кварта Технологии


#2 SAI

SAI

    Member

  • Members
  • ФишкаФишка
  • 144 Сообщений:

Опубликовано 27.03.2013 - 17:35

Ссылка на первоначальную тему не работает:

 

"В связи с популярностью первоначальной темы (http://www.msembedde...aspx?PostID=877)"



#3 Tarasiexapy

Tarasiexapy

    Newbie

  • Members
  • Фишка
  • 2 Сообщений:
  • МестоположениеSumy

Опубликовано 29.03.2018 - 11:04

Есть ли другие методы ввода? Есть Для этого необходимо установить клавиатуру Затем заходим в: Menu - Настройки Settings - Язык и текст Locale & text Ставим галочку напротив нужной клавиатуры Заходим в сообщения в поле ввода Жмём на место ввода и удерживаем Перед Вами будет меню Способ ввода Указываем нужную клавиатуру




1 пользователей читают эту тему

0 members, 1 guests, 0 anonymous users