第三方输入法编辑器

平台

客户端 - Windows 8 服务器 - Windows Server 2012

说明

输入法编辑器 (IME) 是软件组件,允许用户在具有比键盘上表示的字符多的语言中键入文本。 (这一点很常见,但包括但不限于东亚语言。) 不是在单个键上显示每个单个字符,而是用户键入由 IME 解释的键组合。 IME 将生成与键笔划集匹配的字符,有时向用户显示可能从中选取的字符列表,然后将该字符插入用户应用的编辑控制窗口中。

过去,Windows 允许第三方 IME 在 Windows 系统中运行,此功能继续Windows 8。 用户可以安装第三方 IME 并使用它。 此外,我们正在强化系统和流程,以防止恶意 IME,提高安全性,增强用户体验。

在Windows 8中,你将找到:

  • 硬件键盘和触摸键盘的第三方 IME 支持
  • 第三方 IME 供应商必须遵循 Microsoft 指南,为Windows 8开发其 IME
  • 必须对第三方 IME 进行数字签名
  • 第三方 IME 必须是文本服务框架 (TSF) 感知,并且必须将适当的 IME 标志设置为在 Windows 8 中正确运行
  • 旧版第三方 IME 能够在桌面应用中运行,但在 Windows 应用商店应用中将被阻止
  • 第三方 IME 可以使用 Windows 提供的触摸键盘布局来链接其 IME,以便用户可以将 IME 与触摸键盘配合使用。 但是,用于触摸键盘的内置 IME 的某些功能将不适用于第三方 IME
  • Windows Defender将从 Windows 系统中删除恶意 IME

表现

输入语言和输入法开关更改

没有显示所有 IME 模式图标以及 IME 品牌图标,而是只显示一个 IME 模式图标以及 IME 品牌图标。 下图显示了Windows 8输入浮出控件和 IME 浮出控件,使用日语 IME 作为当前输入方法。 如果单击 IME 品牌图标,则可以切换输入方法。

开关输入方法

如果单击 IME 模式图标,则可以切换到其他 IME 模式。

切换 ime 模式

如果 IME 依赖于语言栏在 Windows 7 中显示其模式图标,则必须更改 IME,以便在Windows 8的输入指示器中显示其品牌图标和模式图标。

注意

有关如何在桌面任务栏上的 SysTray 中显示其品牌图标和模式图标的详细信息,将在 Windows 8 IME 指南中公开发布。

新建 Windows 环境

Windows 8环境更改 IME 的布局。 Windows 应用商店应用、本地上下文应用容器和对 IME 的 API 限制的概念在 Windows 7 中不存在。 某些现有 Windows 7 IME 在 Windows 应用商店应用内运行时停止响应,因此不允许旧版 IME 在 Windows 应用商店应用中运行。 此外,请确保验证新版本的 IME,以确保它们与新的 UI 环境兼容,然后再在 Windows 应用商店应用中运行。

缓解措施

可以在系统上使用桌面兼容的 IME。 如果你主要使用桌面应用,并且希望继续使用首选旧版 IME 进行输入,这可能是最佳选择。 建议使用 Windows 8 IME,并停止使用旧版/未认证的 IME。 语言 CPL 和输入开关都提供通知,用于警告你使用桌面兼容的 IME 的效果。

如果桌面兼容的 IME 在系统中不起作用,你将看到以下任一行为:

  • 语言 CPL UI 标记桌面兼容的 IME,并显示一条消息,指出不兼容的 IME 仅在桌面应用中工作。
  • 当用户在 Windows 应用商店应用中时,输入浮出控件灰显出与桌面兼容的 IME。 这表示 IME 在此应用中不起作用。 (在桌面上,与桌面兼容的 IME 不会灰显) 。 如果切换到具有不兼容 IME 的 Windows 应用商店应用并意识到 IME 已关闭,请使用输入指示器更改为与 Windows 应用商店应用兼容的 IME。

旧版或桌面兼容的 IME 仅限于以下条件:

  • 从 Windows 7 升级到 Windows 8,系统上具有第三方 IME
  • 供应商尚未发布与Windows 8兼容的版本,用户同时尝试使用现有的 Windows 7 版本

解决方案

常规

使用现有文本服务框架 (TSF) 基础结构来实现 IME 逻辑和适用于 UI 的 Windows 应用商店应用常见控件。 创建拥有的窗口来托管 UI。

正在添加新的搜索 API 来改进搜索预测,并在 UI 中提供更清晰的搜索体验。

在调用触摸键盘以保护 UI 免受触摸键盘覆盖时,还会添加 API 来通知第三方 IME。 默认经典触摸键盘布局会自动为第三方 IME 加载。 无需执行额外的工作即可与此经典触摸键盘布局集成。 但是,第三方 IME 将能够请求备用触摸布局。

熟悉 Windows 8 IME 指南,以便在 IME 中提升关键 Windows 应用商店应用用户体验原则。 遵守准则的 IME 必须设置一个标志,以指示 IME 与 Microsoft 设计兼容。 Windows 8阻止所有桌面兼容的 IME 在 Windows 应用商店应用中运行。

除了通过Windows Defender吊销外,数字签名还可防止恶意 IME 安装在Windows 8系统上。 身份验证后,第三方 IME 的.dll经过数字签名。 只有具有此数字签名的 IME 才能安装到系统上,而不会向用户显示关键警告消息。 用户可以报告恶意 IME。 确定 IME 是恶意的后,Windows Defender将其从 Windows 系统中删除。

文本服务框架

IME 必须是 TSF 感知型,才能在Windows 8中运行。 Windows 8阻止非 TSF 感知 IME 在 Windows 应用商店应用中运行。 当应用启动时,TSF 会为用户选择的 IME 加载到应用进程中的 IME .dll。

注意

若要在 Windows 应用商店应用和桌面应用之间提供单独的功能或 UI,TSF 加载的.dll可以检查要加载到的应用类型。 IME 调用 ITfThreadMgrEx::GetActiveFlags 方法并检查TF_TMF_IMMERSIVEMODE标志,并根据结果触发不同的应用逻辑。

当 IME 加载到 Windows 应用商店应用中时,它受到与应用本身相同的应用容器限制。 此行为可确保 IME 无法违反 Windows 应用商店应用安全合同,尽管可以访问桌面 SDK (,因为它们不是由 Windows 应用商店) 分发或认证的。 IME 当前执行的一些函数在应用容器内受到影响。 这些函数包括:

  • 字典文件
  • Internet 更新
  • 实时学习
  • 在进程之间共享信息

有关详细信息,请参阅Windows 8 IME 指南。 旧版 IME 在 Windows 应用商店应用中不起作用,以避免出现不良用户体验(包括系统停止)的可能性。 与 Windows 应用商店应用兼容的 IME 必须通过设置指示此兼容性的标志来自行声明。 此标志由 TF_INPUTPROCESSORPROFILE 结构中的 TSF 提供。 有关如何使用此标志将第三方 IME 声明为 Windows 应用商店应用兼容的详细信息,将在 Windows 8 IME 指南中公开发布。

允许与 Windows 应用商店应用兼容的 IME 在桌面应用或 Windows 应用商店应用中运行。 不兼容的 IME 只能在桌面进程中运行。

User interface(用户界面)

尽管第三方 IME 有权访问桌面窗口化 API,但它们必须遵循与运行应用相同的窗口 API 限制。 例如,在桌面应用中处于活动状态时,IME 无法绘制在 Windows 应用商店应用的顶部。 API 限制旨在防止以下方案:

  • 桌面应用从 Windows 应用商店应用获取焦点
  • 在 Windows 应用商店应用中绘制桌面应用
  • 桌面应用干扰 Windows 应用商店应用

触控键盘支持

虽然触摸键盘 (TKB) 支持仍可供第三方 IME 供应商使用,但Windows 8中不提供完全可自定义和集成的触摸键盘体验。 但是,第三方 IME 可以使用针对触摸优化的键盘布局映射其 IME。 默认情况下,Windows 软输入面板 (SIP) 为第三方 IME 提供经典键盘布局。 由于经典键盘会生成类似于硬件键盘的键事件,因此第三方 IME 目前没有特殊实现要求来处理触摸键盘。 硬件键事件的输入处理也将处理经典触摸布局中的关键事件。

注意

如果扩展 TKB 支持以包括优化的键盘布局,则 IME 可能需要开始处理 Unicode 输入事件。

第三方 IME 可以选择对其 IME 使用优化的键盘布局。 有关详细信息,请参阅第三方 IME 指南。

请确保候选窗格的 UI (和其他 UI 元素) 未在触摸键盘下绘制。 在大多数情况下,应用应根据触摸键盘来调整其窗口大小。 但是,如果应用未执行此操作,则 IME 仍然可以使用 InputPaneFramework API 来了解触摸键盘的位置。 第三方 IME 可以使用此 API 获取触摸键盘在绘制候选项 (或其他) UI 之前使用的屏幕空间,并重新排列 UI 以避免在触摸键盘下绘制。

搜索

在Windows 8中,Windows 应用商店应用可以通过实现搜索协定并与搜索窗格集成,轻松为用户提供搜索功能。 “搜索”窗格是用户跨所有应用执行搜索的中心位置。 Windows 可帮助使用“搜索”窗格的应用尽可能快地获取其用户。 具体而言,对于 IME 用户,它提供了独特的搜索体验,使兼容的 IME 与Windows 8集成,以提高效率和可用性。

如果 IME 满足以下条件,则 IME 与集成搜索体验兼容:

  • 与 Windows 应用商店应用环境兼容
  • 实现 TFS 无 UI 模式 API
  • 实现 TFS 搜索集成 API:
    • ItfSearchCandidateProvider
    • ItfSearchHardwareKeyboardBehaviors

在“搜索”窗格中激活时,兼容的 IME 将置于无 UI 模式下,并且无法显示其 UI。 相反,它会将转换候选项发送到 Windows,然后在内联候选列表控件中显示它们。 IME 还会发送应该用于运行当前搜索的 Windows 候选项 - 这些候选项可能与转换候选项相同,也可以针对搜索进行定制。 良好的搜索候选项满足以下条件:

  • 无前缀重叠
  • 没有预测候选项 (仅完成)

不符合条件且与搜索不兼容的 IME 与在其他 Windows 应用商店应用控件中一样显示,并且无法利用 UI 集成和搜索候选项。 (应用仅在用户完成撰写后接收查询。) 当支持搜索协定的应用收到查询时,查询事件将包含包含所有已知替代项的“queryTextAlternatives”数组,排名从最相关的 (可能) 到最不相关的 (不太可能) 。 每当提供替代项时,应用都应将每个替代项视为查询,并返回与任何替代项匹配的所有结果, (就好像用户同时发出了多个查询) ,实质上向提供结果的服务发出“或”查询。 为了提高性能,应用通常会将匹配限制为 10 个最相关的替代项。

IME 数字签名

所有第三方 IME 都必须进行数字签名,才能作为 IME 安装到Windows 8系统上。 使用 SmartScreen 时,用户可以从 Web 下载未签名的 IME 时看到警告消息。 若要获取证书并对文件进行签名,请执行以下操作:

  • 使用 Authenticode 签名对程序进行数字签名
  • 确保未将下载检测为恶意软件
    • 检测到并确认为恶意软件的已下载程序会影响用于对该文件进行签名的数字证书的信誉和信誉
  • 申请 Windows 认证
    • 访问 MSDN 上的 Windows 应用认证页面

有关详细信息,请参阅以下有关数字签名和代码签名的文章:

如果未 对 IME 进行 签名,则当用户尝试下载 IME 时收到此警告消息:

ime 未签名警告消息

如果 IME 已签名,用户将改为看到以下消息:

ime 已签名消息

根据这些通知,用户可以选择是删除文件还是忽略警告并运行下载的程序。

IME 吊销

可以使用 Windows Defender 从系统中删除恶意或不符合 Windows 8 IME 准则的 IME。 有关恶意 IME 的详细信息,请参阅Windows 8中的第三方 IME 的文章。

资源