Мир Автомобильных навигаторов

Мир Автомобильных навигаторов (http://4pna.com/index.php)
-   Навигатор на WinCE (http://4pna.com/forumdisplay.php?f=20)
-   -   [Русификация] Установка дополнительной локализованной клавиатуры в Win CE (http://4pna.com/showthread.php?t=106)

ShivakiGPS 20.02.2009 18:56

[Русификация] Установка дополнительной локализованной клавиатуры в Win CE
 
Вложений: 3
В этой теме обсуждается возможность добавления панели ввода символов
(SIP, или виртуальной клавиатуры)
с нужной пользователю раскладкой.

В этой теме обсуждаются клавиатуры в виде файлов библиотек (.dll), соответствующим образом прикручиваемые к WinCE и вызываемые стандартными (для Windows) способами.
У кого экранной клавиатуры нет совсем (проверить можно [[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]>
Вас не устраивает раскладка "родной" виртуальной клавиатуры? Хотите изменить язык ввода? Хотите изменить вид/размер виртуальной клавиатуры?
Попробуем добавить новую!

Так это должно выглядеть:

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>

Внимание! Это не простой запуск дополнительной программы. Работа с реестром и с папкой Windows всегда сопряжена с определенным риском. Пробуйте, если все осознаете.
Сделайте резервную копию ключа реестра HKCU\ControlPanel\Sip "DefaultIm"
Не изменяйте/удаляйте библиотеку "родной клавиатуры".
Не изменяйте/удаляйте ключи настроек "родной клавиатуры" в реестре.

В этой теме под термином "Клавиатура" подразумеваем экранную панель ввода - виртуальную клавиатуру. Исключительно - чтобы не писать длинных и англоязычных названий.

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>

Теория в "Вопросах и Ответах"

1. Как в навигаторах реализована виртуальная клавиатура?

Большинство навигаторов (но не все!) имеют свою виртуальную клавиатуру. Ее размер 240х80 или 240х104 (с полоской сверху).
Клавиатура имеет две раскладки - английскую и еще какую то не русскую.
Именно на такие навигаторы производится установка клавиатур, описанных в этой теме.

Существуют навигаторы, в прошивку которых не добавлены компоненты, отвечающие за виртуальную клавиатуру.
Установить клавиатуру описанным в этой теме способом на них скорее всего не получится.

Проверить, есть ли в устройстве виртуальная клавиатура, можно запустив одну из утилит вызова клавиатуры. Например ToggleInputPanel.

Программы навигации имеют свою виртуальную клавиатуру. Не путайте клавиатуру программы и клавиатуру устройства.


2. Зачем нужна новая клавиатура?

а) нужен свой язык ввода
б) "родная" клавиатура слишком мелкая
в) нужно вводить слова на нескольких языках
г) нужна красивая клавиатура


3. Как она устроена?

Большинство из приведенных здесь клавиатур состоят всего из одного файла xxxx.dll.
Этот файл содержит уникальный идентификатор объекта, вроде этого 6ADC72B1-969C-4821-A300-FDF2A198BBA1, о котором я буду упоминать далее.


4. Как ее установить?

Для установки клавиатуры достаточно:
1) Разместить этот файл на навигаторе (желательно не на съемном носителе).
2) Далее необходимо рассказать Windows о новой клавиатуре. Это тоже просто:
Берется идентификатор объекта. В специальный раздел реестра под этим идентификатором заносятся значения:
2а) Название клавиатуры.
2б) Путь к иконке клавиатуры.
2в) Ссылка на исполняемый модуль (файл xxxx.dll).
2г) Тип объекта - панель ввода.
Собственно - все. Можно пользоваться.

Если устройство не сохраняет реестр, то после сброса устройства (ХР, Хард ресет, Hard reset) установку нужно повторить.


5. Что произойдет после установки с "родной" клавиатурой?

"Родная" клавиатура останется на своем месте, на нее можно будет переключиться.


6. Как переключиться на "новую" клавиатуру?

Активная клавиатура выбирается при вызове через панель задач (см. первую картинку - самая правая иконка) или через раздел Input Panel в Панели управления. Второй способ работает и без запуска Explorer-а (графической оболочки Windows)


7. Как сделать так, чтобы вызывалась сразу новая клавиатура?

Надо в ключ реестра HKCU\ControlPanel\Sip "DefaultIm" внести идентификатор новой клавиатуры и перезагрузить устройство.
К некоторым клавиатурам добавлена утилита установки новой клавиатуры "по умолчанию" без перезагрузки.


8. А хуже не будет?

Перечислю опасные места.

1) Нельзя указывать уже используемый идентификатор. Этим можно нарушить другой объект.
2) "Ковыряясь" в реестре можно стереть/изменить важные параметры.

И то и другое может привести к потере работавших до этого функций или даже нарушить загрузку устройства.
3) Если для установки клавиатуры используется скрипт, его надо адаптировать к своему устройству.


9. Что за важный параметр HKCU\ControlPanel\Sip "DefaultIm"?

Этот ключ реестра содержит информацию о клавиатуре по умолчанию. (Она же "Активная клавиатура" см. п.6, п.7)
Если вернуть его в прежнее значение (и при этом вы не трогали библиотеку и ключи настроек "родной клавиатуры"), то "родная клавиатура" обязана появиться когда это потребуется.


10. Как мне сделать Backup (резервную копию)?

Опишу, как мне кажется, самый простой способ:
10.1 Запускаем [[Ссылки могут видеть только зарегистрированные пользователи. ]]> 10.2 В правой панели открываем карту памяти. (У меня это \MMC_Storage\)
10.3 Создаем папку с названием, напимер BackupKB. Входим в нее. (\MMC_Storage\BackupKB\)
10.4 В левой панели поднимаемся до корневой папки (\). (далее все действия проводим в левой панели)
10.5 Заходим \\Plugins --> REGISTRY (\\\REGISTRY\)
10.6 Заходим в HKCU\ControlPanel. Курсор ставим на Sip.
10.7 нажимаем Копировать/Перенести, и копируем в правую панель.
10.8 Заходим в HKCU\ControlPanel\Sip и открываем ключ "DefaultIm". Аккуратно переписываем на листочек странный 32-х разрядный код. Ключ закрываем без изменений!
10.9 Переходим в HKCR\CLSID\. Встаем на {выписанный ранее 32-х разрядный код}, и копируем его в правую панель.
10.10 Заходим в {32-х разрядный код}. Последовательно просматриваем значения ключей, и если обнаруживаем в любом из них имя файла, аккуратно переписываем его на листочек. (например \windows\msim.dll). Файлов может быть несколько. Ключи закрываем без изменений!
10.11 находим этот файл/файлы и копируем его/их в правую панель.
Все, теперь в папке BackupKB у вас резервная копия родной клавиатуры.
В ней должны быть файлы Sip.reg, {32-х разрядный код}.reg и файлы из п.11.11. При восстановлении надо проделать обратное копирование.

Утилиты вызова клавиатуры
Далее идут ссылки на программы, позволяющие вызвать клавиатуру, когда она нужна. Вызывается клавиатура, выбранная активной.

[[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]>

И наконец сами клавиатуры. Номер присвоен в порядке поступления.

1 Micron
Micron Для разрешения экрана 320х240 и выше CLSID\{47B3F64A-C3D0-4c6 2-BE0B-DA33BB186D0A}

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>

2 Resco keyboard
Resco keyboard Для разрешения экрана 320х240 и выше

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
Спасибо yurat2008!

3 Pocket RussKey
Pocket RussKey Для разрешения экрана 320х240 и выше CLSID\{6ADC72B1-969C-4821-A300-FDF2A198BBA1}

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]> Спасибо real_by1!
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>

Tenex 50S, texet 705


4 Cyrillic Keyboard
Cyrillic Keyboard Для разрешения экрана 320х240 и выше CLSID\{BF10BE00-7477-11D5-B457-00C04F2444D6}

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>

5 Ukrainian Keyboard
Ukrainian Keyboard Для разрешения экрана 320х240 и выше CLSID\{BF10BE01-7477-11D5-B457-00C04F2444D6}

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
FuntPND!

6 MSH Keyboard
MSH Keyboard Для разрешения экрана 480х272, 480х234 и выше

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
Спасибо PauS!

7 CEKeyboard
CEKeyboard от SeNS (smartqmid.ru) CLSID\{42429695-AE04-11D0-A4F8-00AA00A749B9}

[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
[[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]>

8 Qkeys
Клавиатура Qkeys Для разрешения экрана 320х240 и выше CLSID\{D79FF5E2-3F2D-4EDF-9DFA-8EDAE42024BB}

[[Ссылки могут видеть только зарегистрированные пользователи. ]]> [[Ссылки могут видеть только зарегистрированные пользователи. ]]>

Распространенные ошибки
В: Почему клавиатура не появилась в списке, и естественно выбрать ее нельзя?
О: Произошла ошибка при записи в реестр. Проверьте наличие и правильность внесенныех значений.

В: Почему клавиатура появилась в списке, но ее нельзя выбрать (выбор возвращается на стандартную)?
О: Изменения записались в реестр, но по указанному в нем пути нет библиотеки клавиатуры. Проверьте скопирована ли библиотека, правильно ли записан путь.

В: Новая клавиатура не установилась. Та что была раньше пропала. Что сейчас делать?
О: Об этом Вас предупреждали. Читайте "Как вернуть все обратно..."

Как вернуть все обратно...

Привожу способ восстановления устройства с клавиатурой CLSID 42429667-ae04-11d0-a4f8-00aa00a749b9, msim.dll. Буду считать, что ни одна клавиатура не работает.
Для начала советую попробовать [[Ссылки могут видеть только зарегистрированные пользователи. ]]> Не заработала? Тогда по пунктам:
1) Проверяем на месте ли библиотека стандартной клавиатуры: Чаще всего это \windows\msim.dll
2) Восстанавливаем все ключи стандартной клавиатуры - Запускаем скрипт со следующим кодом:
Код:

RegWriteString( "HKCU", "ControlPanel\Sip","DefaultIm","{42429667-ae04-11d0-a4f8-00aa00a749b9}")
RegWriteDWord( "HKCR", "CLSID\{42429667-ae04-11d0-a4f8-00aa00a749b9}", "KBMode", 00000005 )
RegWriteString( "HKCR", "CLSID\{42429667-ae04-11d0-a4f8-00aa00a749b9}", "", "Keyboard" )
RegWriteString( "HKCR", "CLSID\{42429667-ae04-11d0-a4f8-00aa00a749b9}\IsSIPInputMethod", "", "1" )
RegWriteString( "HKCR", "CLSID\{42429667-ae04-11d0-a4f8-00aa00a749b9}\DefaultIcon", "", "\windows\msim.dll,0" )
RegWriteString( "HKCR", "CLSID\{42429667-ae04-11d0-a4f8-00aa00a749b9}\InProcServer32", "", "windows\msim.dll" )

3) Перезагружаем устройство

asterrX 21.02.2009 11:40

У меня траблы с этой клавой, навик вырубился, после перезагрузки, все равно вырубается. Буду перепро??ивать :(

Так, что тестируйте на свой страх и риск.

437Dima 22.02.2009 17:10

Prestigio 100. В реестр все добавилось, а dll не скопировались в windows. После этого стандартная клава не как не вызывается и эта не работает. Снес из реестра все что прописалось не помогло. Что делать, есть идеи?

ShivakiGPS 22.02.2009 19:56

437Dima, Думаю ничего страшного не случилось. Windows пытается загрузить несуществующуюю панель.
Надо создать ключ в реестре HKCU\ControlPanel\Sip с именем DefaultIm (или исправить его содержимое) на 42429667-ae04-11d0-a4f8-00aa00a749b9 - Это стандартная панель ввода в Win CE 5.0. Или можно выбрать ее через панель управления (Start > Control Panel > Input Panel).

437Dima 22.02.2009 23:23

Prestigio 100. 1 способ помог. Поправил скрипт и вернул старую клаву. Огромное спасибо ShivakiGPS. Второй способ (Или можно выбрать ее через панель управления (Start > Control Panel > Input Panel)) на Prestigio 100 не работает - не сохраняет.
По поводу русской клавы в папке windows нет места, нельзя ли запускать клаву с флешки или встроенной памяти? (На Prestigio 100, как я понял есть системная память с WinCE - (добавить туда ни один файл я не смог) и доступная встроенная память с Навителом и флешка).

ShivakiGPS 23.02.2009 07:46

437Dima, конечно можно хранить библиотеку где-нибудь на флешке, но может настать момент, когда флешка будет недоступна системе (смена флешки или при загрузке флешка еще не инициализирована), тогда возможны глюки и зависания. Библиотека должна быть во внутренней памяти PNA.

Nova 23.02.2009 14:48

В реестре PNA существует ветка, в которую пишет скрипт:
CLSID\{47B3F64A-C3D0-4c62-BE0B-DA33BB186D0A
Может будут идеи как поставить ЛЮБУЮ клавиатуру работать с этим апаратом. Перепробовал кучу рекомендованных клавиатур, но ни одна не заработала. В Start > Control Panel > Input Panel нет выбора клавиатуры, а если какая и устанавливается (модно даже настройками поиграть) то выйдя из Input Panel сохранение не происходит. И второй вопрос, как установить нижнюю строку Start > Control Panel > Input Panel (в Control Panel > Input Panel попадаю через проводник).

SLM 23.02.2009 19:44

думаю положитеьный опыт тоже нужно собирать
имеем jj2000w (win ce4.2) - клавиатура заработала без проблем. смутно понимаю, а что делает закомментареная последняя строка в скрипте? у меня именно закомментаренная.
появилась мысль: у себя в реестре нашел библиотеку, которая отвечает за стандартную клавиатуру (HKCR\CLSID\{42429667-ae04-11d0-a4f8-00aa00a749b9}\InprocServer32\Default) содержание windows\msim.dll. Так может micron.dll переименовать в msim.dll и поместить в папку windows? или наоборот пометить micron.dll в папку windows и соответствующим образом поправить реестр?
какие будут мысли?

hostt 24.02.2009 04:12

Пробую На Nexx 5010

З.Ы. Полет нормальный

ShivakiGPS 24.02.2009 16:40

Nova, клавиатура появится только если запущен Explorer.exе
Читай тему [[Ссылки могут видеть только зарегистрированные пользователи. ]]> SLM, я против переписывания и перезаписывания. Я за то, чтобы дописать и поправить на это ярлык. Тогда не наступит ситуация, когда восстанавливать будет нечего - все стерто.
Не сжигайте за собой мосты!
Цитата:

Сообщение от SLM (Сообщение 1090)
... или наоборот пометить micron.dll в папку windows и соответствующим образом поправить реестр?...

Собственно это и делает скрипт.

Nova 24.02.2009 18:40

Запускаю Explorer.exе, клавиатура автоматически не запускается. Пробую ее запустить нажав на исполняемый файл клавиатуры. Не запускается. Из Explorer захожу в Control Panel, потом в Input Panel. Пробую там выставить клавиатуру, но Input Panel пусто, нечего выбирать. Если устанавливаю стороннюю клавиатуру для WinCe, то в Input Panel она появляется и работают даже настройки. После выбора клавиатуры нажимаю ОК и выхожу в Control Panel, потом возвращаюсь в Input Panel, а там клавиатура не выбрана, т.е. не сохранились мои настройки по выбору клавиатуры.

SLM 24.02.2009 18:41

вообщем с копированием в/из папку windows ни чего не получается - win ce не дает этого сделать.
а поправить реестр я имел ввиду прописать что вместо стандартной библиотеки клавиатуры будет использоваться micron.dll лежащей на флэшке, с целью не выполнять лишних действий по запуску kbd.exe
и еще вопрос - а что делает последняя строка в скрипе которую мы закомментарили?

437Dima 25.02.2009 00:59

Prestigio 100. Клавиатура заработала большое спасибо ShivakiGPS. Для того чтобы заработала поправил 2 пути в реестре см. в
\HKEY_CLASSES_ROOT\CLSID\{47B3F64A-C3D0-4c62-BE0B-DA33BB186D0A}\DefaultIcon

прописал \ResidentFlash\Application Data\micron.dll,0

в \HKEY_CLASSES_ROOT\CLSID\{47B3F64A-C3D0-4c62-BE0B-DA33BB186D0A}\InprocServer32

прописал \ResidentFlash\Application Data\micron.dll

далее создал папку на ResidentFlash\Application Data и поместил туда micron.dll

еще сделал \HKEY_LOCAL_MACHINE\System\Explorer\Shell Folders ----> \ResidentFlash\Application Data

(последнее думаю лишнее)

остальное все как в скрипте.

ЗЫ. ResidentFlash - встроенная в навигатор память 512 метров доступная пользователю.

blagoda 04.03.2009 23:09

Цитата:

Сообщение от ShivakiGPS (Сообщение 957)
Это не простой запуск дополнительной программы. Работа с реестром и с папкой Windows всегда сопряжена с определенным риском. Пробуйте, если все осознаете.
Сделайте резервную копию ключа реестра HKCU\ControlPanel\Sip "DefaultIm"
Архив распаковать. Папку Kbd поместить в любое место на карте памяти. Запускать Kbd.exe. Проверено на Windows CE 5.0
*** скрытый текст ***
[[Ссылки могут видеть только зарегистрированные пользователи. ]]>
Скрипт
- копирует библиотеку клавиатуры в папку Windows
- прописывает необходимые настройки в реестр
- устанавливает новую клавиатурой по умолчанию (действует после перезапуска)


После выполнения Kbd.exe запустить Explorer. Если Explorer запущен - выбрать новую панель ввода Micron через значек в трее или через панель управления.

ВНИМАНИЕ: идет не на всех PNA (1 убитый PNA уже есть)
Наиболее безопасный метод установки:
1 проверить в реестре PNA существует ли ветка, в которую пишет скрипт:
CLSID\{47B3F64A-C3D0-4c62-BE0B-DA33BB186D0A}. Если есть - эта клавиатура не для вас!

1а сохранить резервную копию ключа реестра HKCU\ControlPanel\Sip "DefaultIm"
2 закоментировать в скрипте (поставить символ # в начале строки) последнюю строку
RegWriteString( "HKCU", "ControlPanel\Sip", "DefaultIm", "{47B3F64A-C3D0-4c62-BE0B-DA33BB186D0A}" )
3 попробовать при запущенном Explorer.exe выбрать новую панель ввода Micron: Start > Control Panel > Input Panel и проверить работу.
4 некоторые PNA при засыпании сохраняют реестр - не усыпляйте PNA, пока не убедитесь в работоспособности экранной клавиатуры!
Если что-то не пошло - восстановите ранее сохраненный ключ HKCU\ControlPanel\Sip "DefaultIm"
5 при глюках делайте Хард Ресет, если ваш PNA это умеет.

На этих PNA
не заработало: ?

заработало: jj2000w (win ce4.2), Nexx 5010
заработало после танцев с бубном: Prestigio 100

Установил русскую клавиатуру от ShvakiGPS, выполнил все пункты, глюков не было, но клавиатура на экране не появляется. Что-то не так сделал?( Mesada2440, 7" 480X234, WinCE 4.2 )

blagoda 05.03.2009 12:36

Скачал, установил. При выборе появился Micron. Открваю далее - в обоих Layout1 и 2 присутствует выбор: Phonetic, Standart, English. Русского нет. В папке Windows micron.dll есть. Как вызвать клавиатуру на экран и что за проблема с русским? Спасибо.


Текущее время: 12:14. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot

Время генерации страницы 0.03877 секунды с 10 запросами