- В Windows 10 версии 20H2 и Windows 10 версии 2004 при использовании некоторых Microsoft IME могут возникнуть проблемы
- Сводка
- Проблема 1 — решена:
- Проблема 2 — решена:
- Проблема 3 — решена:
- Проблема 4 — решена:
- Проблема 5 — решена:
- Проблема 6 — решена:
- Проблема 7 — решена:
- Временное решение
- Дальнейшие действия
- Проблема 2.
- Проблема 4.
- Проблемы 3, 5, 6, 7.
- Chinese Computing Help Desk
- Windows 10 Chinese Setup: Advanced Features
- Desktop Language Bar, IME Pad, and Hotkeys
- Want to turn on the desktop language bar?
- The IME Pad
- Chinese IME «hotkeys»
- Chinese IME pad deactivated Window 10
- Replies (4)
- Клавиатурный ввод с использованием IME
- Введение
- Система IME по умолчанию
- Переопределение поведения IME по умолчанию
- Потенциальная угроза при использовании IME-системы
В Windows 10 версии 20H2 и Windows 10 версии 2004 при использовании некоторых Microsoft IME могут возникнуть проблемы
Сводка
Далее приведены некоторые проблемы, связанные с редакторами Microsoft IME в Windows 10 версии 20H2 и Windows 10 версии 2004. Если вашей проблемы нет в списке, вы можете воспользоваться временным решением и узнать, устраняет ли оно проблему, пока она не будет устранена в текущем редакторе Microsoft IME для вашего языка.
Проблема 1 — решена:
Некоторые приложения используют свойство ImeMode для управления режимом IME (редактор метода ввода) для отдельных полей ввода текста, чтобы повысить эффективность ввода. У некоторых IME в Windows 10 версии 2004 (обновление от мая 2020 г.) могут возникать проблемы с использованием свойства ImeMode с некоторыми приложениями. Например, режим ввода не будет автоматически переключаться в режимы полной ширины: катакана, буквенно-цифровой или хирагана.
Для получения технической информации о свойстве ImeMode см. Документацию для разработчиков по свойству IMEMode и свойству Control.ImeMode.
Примечание. Решение проблемы см. в разделе Дальнейшие действия.
Проблема 2 — решена:
У пользователей Microsoft IME для китайского или японского языка в некоторых приложениях, например в Microsoft Excel, при попытке перетаскивания с помощью мыши может появиться сообщение об ошибке, либо приложение может перестать отвечать на запросы или закрыться.
Примечание. Решение проблемы см. в разделе Дальнейшие действия.
Проблема 3 — решена:
Функция ImmGetCompositionString() неожиданно возвращает полноширинные знаки хирагана при использовании текущего редактора Microsoft IME для японского языка. Полуширинный знак катакана — это ожидаемая кодировка, которая возвращается в предыдущих версиях редактора Microsoft IME для японского языка.
Примечание. Решение проблемы см. в разделе Дальнейшие действия.
Проблема 4 — решена:
При использовании редактора Microsoft IME для японского или китайского языка первый символ, введенный в элемент с помощью DataGridGView в приложении Windows Forms (WinForms), может принадлежать английскому набору символов, даже если включен режим IME.
Примечание. Решение проблемы см. в разделе Дальнейшие действия.
Проблема 5 — решена:
В определенных условиях, например, в формах с ограниченными возможностями ввода или при обработке сообщения WM_CHAR для элемента управления вводом, приложения могут не иметь возможности принимать данные, вводимые с клавиатуры пользователями редактора Microsoft IME для японского или китайского языка.
Примечание. Решение проблемы см. в разделе Дальнейшие действия.
Проблема 6 — решена:
Редактор Microsoft IME для японского языка может неправильно реагировать при использовании API SetInputScope() для изменения или выбора режима преобразования для приложений.
Примечание. Решение проблемы см. в разделе Дальнейшие действия.
Проблема 7 — решена:
Если выбрать текстовое поле при отключенном свойстве ImeMode, при использовании редактора Microsoft IME для японского языка индикатор ImeMode в правой части панели задач Windows может показывать неправильный режим.
Примечание. Решение проблемы см. в разделе Дальнейшие действия.
Временное решение
Проблемы 3, 5, 6 и 7 можно временно решить, включив режим совместимости, для чего надо выполнить следующие действия.
Выберите Пуск, введите Настройки и щелкните этот пункт или нажмите ВВОД.
Введите Настройки IME в поле поиска в разделе Настройки и выберите настройки IME, соответствующие вашему языку, например, Настройки IME для японского языка.
Включите Использование предыдущей версии Microsoft IME.
Примечание Мы не рекомендуем использовать параметр совместимости в долгосрочной перспективе, а скорее как временный обходной путь для пользователей, затронутых этой проблемой.
Дальнейшие действия
Эта проблема была решена в обновлении KB4565503.
Проблема 2.
Эта проблема была решена в обновлении KB4571744.
Проблема 4.
Эта проблема была решена в обновлении KB4571744.
Проблемы 3, 5, 6, 7.
Эти проблемы решены в обновлении KB4586853.
Примечание. Если у вас возникают проблемы с языком или редактором IME, вы можете проверить статью в разделе Журнал обновлений Windows со сведениями о вашем последнем установленном обновлении или страницу работоспособности выпусков Windows.
Chinese Computing Help Desk
Windows 10 Chinese Setup:
Advanced Features
Desktop Language Bar, IME Pad, and Hotkeys
Want to turn on the desktop language bar?
The first step in accessing advanced features of the Chinese IMEs is to turn on the desktop language bar. Microsoft documentation has in the past also called this the «language band» since it can be a section on your taskbar, and «taskbar language bar» sounds a bit awkward. But it can also float anywhere on your screen as a separate bar, so overall it’s a bar. Or anyway that’s my story, and I’m stickin’ to it.
The Windows 10 one-year «Anniversary Update» (version 1607, released July 2016) introduced the option to turn on the desktop language bar for all IMEs including Microsoft Bopomofo from within the Microsoft Pinyin options panel. But I am going to take you to the classic Language control panel, where you can turn this on and also access other advanced features.
In all versions of Windows 10, the easiest and fasted way to get to the advanced control panel is to type «Language» into the search box next to the Start button. («语言» or «語言» only bring up this result in their own display language settings or localized Windows releases.)
Alternate method:
If you use the Language Menu instead, it’s a few more clicks in.
Select «Language preferences». In the Time and Language Settings panel, under the Region & language, scroll down to «Related settings». Select «Additional date, time, and regional settings».
This will open the classic «Clock, Language, and Region» control panel. Select «Language».
Either way, you’ll now find yourself at the «Language» desktop control panel. In the left column, select «Advanced settings»:
In the «Advanced settings» control panel, under «Switching input methods», select the box for «Use the desktop language bar when it’s available», and click the «Save» button.
Notice in that same area, above is an option to tell the system to remember which input method you were last using in each application window. This can be a real time-saver. And below is a link to the language bar hot keys control panel, which I will discuss below. Elsewhere on this control panel are other preferences that may be important to you.
Now you should see the desktop language bar on the taskbar! (If not, right-click on the taskbar, and in the menu select «Toolbars» and then «Language bar».)
The «Chinese, Traditional» MS Bopomofo IME Tool Menu has the most toys. The Quick, Cangjie, and Aray keyboards do not offer any of the additional options shown here.
Click the Tool Menu, circled in the image here, to get to the IME Pad and other features there, and to open the Properties control panel.
On the «Chinese, Simplified» side the Options menu is missing entirely, along with the IME Pad and everything else in it! But as of the July 2016 «Anniversary Update», the desktop language bar tools shown here have returned:
The IME Pad
The IME Pad for Traditional Chinese can be selected from the top of the Tool Menu shown above. It offers lookup by stroke number, radical, or handwriting,* as well as punctuation and buttons for entering selected characters directly into your current document.
The IME Pad for Simplified Chinese was missing from Windows 10 at launch. I’ll be tracking that and many other issues on my missing and broken features page. In previous versions of Windows it offered lookup by radical, and also listed punctuation, but did not include handwriting.*
*Note: the new Touch Keyboard offers handwriting for Traditional and Simplified.
The Traditional Chinese IME Pad offers offers a handwriting feature. I shall refrain from demonstrating this feature with my left-handed foreign-devil controlled mouse. I am «Pinyin» Joe, after all. Many still prefer this to the new Touch Keyboard for handwriting.
It also has symbols, including traditional Chinese punctuation. (You can jump directly to this from the second item on the desktop language bar Tool Menu.)
I plan to create an FAQ page explaining all the ways to get at Chinese punctuation in these IMEs without leaving your document for the IME Pad. In summary, they are:
+ for full-width mode including punctuation
Chinese IME «hotkeys»
As noted above, in the «Advanced settings» control panel is a link that says «Change language bar hot keys». Clicking there will give you this panel:
In Windows 10, pressing + will switch between languages and keyboards, But the desktop language bar has its own more extensive set of hotkeys (a.k.a. «hot keys»).
The default hotkey combinations for the desktop language bar are:
+ = switch input languages (for example, EN to CH)
or = switch between Chinese and Latin text within the IME*
+ = turns off IME, switches to system language
Optional: hotkeys for switching directly to a specific input method
To make changes, click the «Change Key Sequence» button.
In that same Text Services and Input Languages control panel, you can click on the «Language Bar» tab to adjust when and how the desktop language bar appears, but most people leave those defaults as they are.
*See also the new Windows 10 Settings panel for Microsoft Pinyin. It allows you to control the Chinese/English hotkey with the options «Shift», «Ctrl», or «None».
OK? I plan to write up several more «power user» features in separate FAQs, like traditional/double-byte punctuation, after I finish the main Windows 10 pages. For now, please see the other setup pages below.
See also:
Zhuyin input, symbols, & Zhuyin/Pinyin «ruby text» (Win7, but universal. Includes discussion of the MS Word Phonetic Guide and ruby fonts.)
Chinese IME pad deactivated Window 10
I have Window 10. I have used Chinese Bopomofo input for long time. Suddenly, IME pad was deactivated after window update.
I have re-installed Chinese Bopomofo and Quick input for more than three times, however, IME pad still not activate.
I see a message IME is disabled. How to activate Chinese IME pad?
Replies (4)
My name is Angel. I am an Independent Advisor. Thank you for posting in Microsoft Community.
I would suggest you to follow these steps:
Step 1:
a. Press Windows key + X on the desktop Screen and select Control Panel.
b. Select Language and click on Add a Language.
c. For Traditional Chinese, select «Options» for your Hong Kong or Macau regional language settings. d. If you have already selected «Chinese (Traditional, Taiwan)», you must first remove it before you can install the Hong Kong or Macau version. e. Select «Download and install language pack» to install these optional handwriting and display language features.
Step 2: To access the IME Pad, you’ll need to revert to the old-style input method Language band/bar.
a. Go to the Language control panel again, click «Advanced settings» there.
b. In Advanced settings, under «Switching input methods», check the box next to «Use the desktop language bar when it’s available», and then click the Save button.
Back on the desktop Taskbar, at the right end of the language area you’ll find the Tool Menu. On the top, you’ll see the IME Pad. Select that, and the floating IME Pad will appear for your use in handwriting, stroke, radical, or symbols input.
Hope the information provided is useful. If the issue persists, reply here and we will be glad to help you.
Клавиатурный ввод с использованием IME
Введение
В азиатских языковых культурах существует большое количество символов, которые не всегда помещаются на стандартную раскладку клавиатуры. Для ввода этих символов была разработана специальная технология, которая получила название Input Manager Editor (рус. «Редакторы метода ввода»). Input Method Editor (IME) — это программа или компонент операционной системы, позволяющий пользователям вводить символы, которые физически отсутствуют на клавиатуре.
Несмотря на то, что термин «редактор метода ввода» (IME) изначально использовался только в Microsoft Windows, в настоящее время он применяется и в других операционных системах, когда важно отличить сам метод ввода от функциональности программы, обеспечивающей его, и общую поддержку методов ввода операционной системы.
Термин «метод ввода» обычно означает определенный способ ввода с клавиатуры на каком-либо языке, например Цанцзе, ввод с использованием Пиньиня или использование «мёртвых» клавиш».
Термин «редактор метода ввода» же обычно означает конкретную программу, позволяющую использовать метод ввода (например, SCIM или Microsoft IME).
Система IME по умолчанию
Если языковая культура содержит не более 100 символов, то при вводе с клавиатуры не нужно конвертировать несколько нажатых клавиш к одному символу, как это было в пишущих машинках. Для современных клавиатур данное правило актуально, например QWERTY-клавиатуры содержит 102 клавиши и несколько модификаторов. Однако, если в языке присутствует более 100 символов, то необходимо предусмотреть преобразование комбинации введенных символов перед их использовании в приложении. Такой процесс называется «коммуникационным процессом» (FEP) и IME – стандартный способ для FEP в Windows.
Стандартно, IME использует слоговую фонетическую карту ввода для выбранного языка. В обычном сценарии пользователь вводит латинские символы, которые входят в произношение определенного слога. Если IME распознает введенный слог, то он отображает пользователю список слов или фраз кандидатов, из которых пользователь может выбрать окончательный вариант. Выбранное слово затем отправляется в приложение через серию сообщений Microsoft Windows — WM_CHAR. Поскольку IME работает на уровне ниже обычного приложения (путем перехвата ввода с клавиатуры), то наличие IME прозрачно для приложения. Почти все окна приложения могут легко воспользоваться IME, не зная об его существовании и не требуя специального кодирования.
Ввод отдельного слова может происходит в два или три этапа, в зависимости от выбранной языковой системы.
Например, сценарий для японского языка:
- Пользователь вводит обозначение слогов на латинице. Например, слово «цунами» набирается как «tsunami».
- Введенные слоги на латинице автоматически заменяются на символы из хираганы или катаканы. Хирагана и катакана – слоговые азбуки, в которых каждому звуку японского языка соответствует свой иероглиф. Например, если пользователем выбрана хирагана: «Tsu» автоматически заменяется на «つ», «na» -> «な», «mi» -> «み».
- Пользователь может оставить слово записанным хираганой, а может сконвертировать в иероглиф. Конвертация в иероглифы похожа на систему ввода T9: в худшем случае пользователю предлагается список вариантов, из которых он должен выбрать один вариант. В примере с «цунами» хирагана «つなみ» превращается в иероглифы «津波». На третьем этапе можно управлять конвертацией, обычно используются клавиши «Space», «Enter», стрелки, «numpad». Например, Space конвертирует из хираганы в иероглифы, еще один Space показывает список с вариантами замены, «Enter» означает закончить конвертацию и оставить введенные символы «как есть».
На первом скриншоте показано, как пользователь вводит последовательность символов, называемая «строка композиции» (en. “Composition string”). Необходимо отметить, что последовательность из двух предлагаемых символов преобразовалось к одному символу «Ф» в блокноте.
На втором скриншоте показано, что пользователь завершил ввод слогов, и система IME предлагает выбрать подходящее слово (Пользователь нажал «space»). Пользователь может подтвердить ввод слова с помощью нажатия «Enter».
После нажатия «Enter» для подтверждения введенного слова, приложение (в примере – блокнот) получает результирующую строку в виде сообщения WM_IME_CHAR. Впоследствии, если приложение не обрабатывает это сообщение, то оно получит стандартное сообщение WM_CHAR от системы IME.
Переопределение поведения IME по умолчанию
Обычно IME использует стандартные процедуры Windows для создания окон (используется WinAPI).
Примечание: Когда приложение работает в полноэкранном режиме, как это принято, например, для игр, стандартные окна не работают и не могут отображаться поверх приложения. Чтобы решить эту проблему, приложение должно обработать IME-сообщения самостоятельно, а не полагаться на окна IME, чтобы выполнить эту задачу.
Стандартно, приложение может воспользоваться библиотекой IME напрямую, путем обработки IME-связанных сообщений и вызова менеджера метода ввода (IMM).
Когда пользователь использует IME-раскладку для ввода сложных символов, IMM отправляет в приложение сообщения, чтобы уведомить его о важных событиях, таких как запуск композиционного окна или «показывать список кандидатов слов». Приложение обычно игнорирует эти сообщения и передает их, по умолчанию, в обработчик сообщений Windows, что приводит к вызову IME-библиотеки.
На диаграмме процесса (рис. 2) показано, каким образом происходит процесс ввода текста:
- Когда IMM получает нажатые клавиши от клавиатурного драйвера, он отправляет виртуальные символы в систему IME, вызывая функцию «ImeProcessKey». Если в результате выполнения этой функции — «0», то нажатие клавиш должно быть обработано операционной системой и приложением самостоятельно. В приложение будут передаваться сообщения WM_KEYDOWN и WM_KEYUP, а затем и WM_CHAR или WM_COMMAND.
- Если же система IME возвратило результат, отличный от «0», то IMM будет передавать нажатые символы, вызывая функцию «ImeToAsciiEx» IME-библиотеки.
- Система IME возвращает «lpdwTransBuf» параметр, который содержит сообщения Windows которые необходимо передать в приложение. Система IME также принимает hIMC, в качестве параметра, где указывается «composition string». В процессе работы, система IME будет менять содержимое области памяти hIMC.
- Каждый раз, когда IMM получает «lpdwTransBuf» параметр, то проверяет, содержит ли этот буфер сообщения для приложения. Обычно в буфере содержится WM_IME_COMPOSITION сообщение, которое должно передаваться в приложение каждый раз, когда меняется строка композиции.
- Если приложение не поддерживает IME, то оно не будет обрабатывать сообщение WM_IME_COMPOSITION. Таким образом, пользователь не будет видеть введенный. В этом случае, сообщение передается соответствующему окну IME UI (которое создается системой IME при инициализации в функции «ImeInquire»), которая всегда создается, если IME активирована. Окно IME будет показывать строку композиции так, как оно введено пользователем.
- Если приложение поддерживает IME, то оно будет обрабатывать WM_IME_COMPOSITION сообщение. Если нужно получить содержимое строки композиции, приложение вызывает функцию «ImmGetCompositionString» из библиотеки «Imm32.dll». WM_IME_COMPOSITION сообщение может также уведомить приложение, что строка была сформирована.
- Если приложение получает строку композиции от IMM, то оно должно вызывать функцию DefWindowProc для сообщения WM_IME_CHAR, т.к. дальнейшая обработка может опять сгенерировать это сообщение.
- Если приложение не поддерживает IME, то оно получит WM_IME_CHAR сообщение. Если приложение поддерживает Unicode, то в параметрах будет передан Unicode-символ, если же нет, то приложение получит сообщение WM_CHAR, но оно будет знать, что необходимо преобразовать символ.
- В итоге, приложение всегда получает сообщение WM_CHAR и знает, надо ли преобразовывать символ.
Библиотека IME – это обычный DLL файл, обычно имеющий расширение «.ime». Каждая IME система должна быть зарегистрирована в Microsoft Windows в реестре: «HKEY_LOCAL_MACHINE\SYSTEM\ControlSet00X\Keyboard Layouts». Для любого приложения всегда можно получить его клавиатурный контекст.
Потенциальная угроза при использовании IME-системы
Каждая клавиатурный слой (Keyboard Layout), включая IME-системы, всегда загружаются в каждый процесс операционной системы. Обычное приложение, запущенное в пользовательской среде, не может запретить загрузку клавиатурных модулей в свое адресное пространство. Библиотека IME, как библиотека Windows, обязана экспортировать несколько функций, которые можно переопределить. Также, при загрузке библиотеки всегда вызывается функция DLLMain.
Для реализации атаки, типа Keylogger, злоумышленнику достаточно создать свою IME-систему для любой клавиатурной раскладки (Например, IME для US, UK, RU, CH, JP, KR), которая не отображает окон и осуществляет конвертацию символов. Т.е. будет незаметна для пользователя.
Как было сказано выше, IMM-менеджер всегда передает коды нажатых клавиш выбранной IME-системе, вызывая функции ImeProcessKey и ImeToAsciiEx, экспортируемые из IME-библиотеки.
Самый простой способ перехватить нажатые клавиши – это использовать функцию «ImeProcessKey», которая должна возвращать всегда «0», чтобы исключить дальнейшую обработку сообщений для заданного символа. Т.к. IME-библиотека загружается во все процессы, то пользователь не сможет заметить подозрительную активность стандартными средствами (Например, не будет отдельного процесса для IME-библиотеки).
Также если ImeProcessKey возвращает значение, отличное от нуля, то перехват клавиш можно осуществить в функции ImeToAsciiEx, но при этом необходимо осуществить преобразование скан-кода нажатой клавиши к символу в нужной кодировке, что является тривиальной операцией.