プラットフォーム
クライアント - Windows 8
サーバー - Windows Server 2012
形容
入力メソッド エディター (IME) は、ユーザーがキーボードで表現できる文字よりも多くの文字を持つ言語でテキストを入力できるようにするソフトウェア コンポーネントです。 (これは一般的ですが、東アジア言語に限定されません)。1 つのキーに表示される各文字の代わりに、ユーザーは IME によって解釈されるキーの組み合わせを入力します。 IME は、キー ストロークのセットに一致する文字を生成し、選択できる文字の一覧をユーザーに表示し、その文字をユーザーのアプリの編集コントロール ウィンドウに挿入する場合があります。
以前は、Windows ではサード パーティの IME を Windows システムで実行することが許可されており、この機能は Windows 8 で引き続き使用できます。 ユーザーはサードパーティの IME をインストールして使用できます。 さらに、悪意のある IME を防ぎ、セキュリティを強化し、ユーザー エクスペリエンスを強化するために、システムとプロセスを強化しています。
Windows 8 では、次の情報が表示されます。
- ハードウェア キーボードとタッチ キーボードの両方に対するサード パーティの IME サポート
- サード パーティの IME ベンダーは、Windows 8 用の IME を開発するために Microsoft のガイドラインに従う必要があります
- サード パーティの IME はデジタル署名する必要があります
- サード パーティの IME は Text Services Framework (TSF) に対応している必要があり、Windows 8 で正しく実行されるように適切な IME フラグを設定する必要があります
- 従来のサード パーティの IME はデスクトップ アプリで実行できますが、Windows ストア アプリではブロックされます
- サード パーティの IME は、Windows が提供するタッチ キーボード レイアウトを使用して IME をリンクできるため、ユーザーはタッチ キーボードで IME を使用できます。 ただし、タッチ キーボード用のインボックス IME の特定の機能は、サードパーティの IME では使用できません
- Windows Defender によって Windows システムから悪意のある IME が削除される
顕現
入力言語と入力方法の切り替えの変更
すべての IME モード アイコンと IME ブランド 化アイコンを表示する代わりに、IME モード アイコンと IME ブランド 化アイコンが 1 つだけ表示されます。 次の 2 つの図は、現在の入力方法として日本語 IME を使用した Windows 8 入力ポップアップと IME ポップアップを示しています。 IME ブランド化アイコンをクリックすると、入力方法を切り替えることができます。
[IME モード] アイコンをクリックすると、別の IME モードに切り替えることができます。
IME が言語バーに依存して Windows 7 のモード アイコンを表示する場合、Windows 8 の入力インジケーターにブランド 化アイコンとモード アイコンを表示するには、IME を変更する必要があります。
手記
注: デスクトップ タスク バーの SysTray で IME のブランド化アイコンとモード アイコンを表示する方法の詳細は、Windows 8 IME ガイドラインに記載され、公開されます。
新しい Windows 環境 を する
Windows 8 の環境では、IME のランドスケープが変更されます。 Windows ストア アプリ、ローカル コンテキスト アプリ コンテナー、および IME に対する API の制限の概念は、Windows 7 には存在しません。 一部の既存の Windows 7 IME は、Windows ストア アプリ内で実行すると応答を停止するため、Windows ストア アプリ内でのレガシ IME の実行を許可しません。 さらに、Windows ストア アプリ内で実行する前に、新しいバージョンの IME が検証され、新しい UI 環境と互換性があることを確認します。
緩和
デスクトップ互換の 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) インフラストラクチャを使用して、UI の IME ロジックと Windows ストア アプリの共通コントロールを実装します。 UI をホストする所有ウィンドウを作成します。
新しい検索 API が追加され、検索予測が向上し、UI での検索エクスペリエンスがクリーンになります。
タッチ キーボードが呼び出されたときにサードパーティの IME に通知する API も追加され、UI がタッチ キーボードでカバーされないように保護しています。 既定のクラシック タッチ キーボード レイアウトは、サードパーティの IME に対して自動的に読み込まれます。 この従来のタッチ キーボード レイアウトと統合するために追加の作業は必要ありません。 ただし、サードパーティの IME は代替タッチ レイアウトを要求できます。
IME で Windows ストア アプリの主要なユーザー エクスペリエンスの原則を昇格できるように、Windows 8 IME のガイドラインを理解します。 ガイドラインに準拠する IME では、IME が Microsoft の設計と互換性があることを示すフラグを設定する必要があります。 Windows 8 では、デスクトップと互換性のあるすべての IME が Windows ストア アプリで実行されるのをブロックします。
デジタル署名は、Windows Defender による失効に加えて、悪意のある IME が Windows 8 システムにインストールされるのを防ぎます。 ID 検証時に、サード パーティの IME の .dll がデジタル署名されます。 ユーザーに重大な警告メッセージが表示されることなく、このデジタル署名を持つ IME のみをシステムにインストールできます。 ユーザーは悪意のある IME を報告できます。 IME が悪意のあると判断されると、Windows Defender によって Windows システムから削除されます。
Text Services Framework
Windows 8 で実行できるようにするには、IME が TSF に対応している必要があります。 Windows 8 では、TSF に対応していない IME が Windows ストア アプリで実行されるのをブロックします。 アプリが起動されると、TSF は、ユーザーが選択した IME の IME .dll をアプリ プロセスに読み込みます。
手記
Windows ストア アプリとデスクトップ アプリの間で個別の機能または UI を提供するために、TSF によって読み込まれる .dll は、読み込まれているアプリの種類を確認できます。 IME は、ITfThreadMgrEx::GetActiveFlags メソッドを呼び出し、TF_TMF_IMMERSIVEMODE フラグを確認し、結果に応じて異なるアプリ ロジックをトリガーできます。
IME が Windows ストア アプリに読み込まれると、アプリ自体と同じアプリ コンテナー制限が適用されます。 この動作により、デスクトップ SDK にアクセスできるにもかかわらず、IME が Windows ストア アプリのセキュリティ 契約に違反できなくなります (Windows ストアによって配布または認定されていないため)。 IME が現在実行している一部の関数は、アプリ コンテナー内で影響を受けます。 これらの関数は次のとおりです。
- 辞書ファイル
- インターネットの更新
- オンザフライ学習
- プロセス間での情報の共有
詳細については、Windows 8 IME ガイドラインを参照してください。
レガシ IME は、システムの停止を含む不適切なユーザー エクスペリエンスの可能性を回避するために、Windows ストア アプリでは機能しません。 Windows ストア アプリと互換性のある IME は、この互換性を示すフラグを設定して自己宣言する必要があります。 このフラグは、TF_INPUTPROCESSORPROFILE構造体の TSF によって提供されます。 このフラグを使用して Windows ストア アプリと互換性のあるサード パーティの IME を宣言する方法の詳細については、Windows 8 IME ガイドラインに記載され、公開されます。
Windows ストア アプリと互換性のある IME は、デスクトップ アプリまたは Windows ストア アプリで実行できます。 互換性のない IME は、デスクトップ プロセスでのみ実行できます。
ユーザー インターフェイスの
サードパーティの 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) を描画する前にタッチ キーボードで使用される画面領域を取得し、UI をリフローしてタッチ キーボードの下に描画しないようにすることができます。
検索
Windows 8 では、Windows ストア アプリは、検索コントラクト を実装し、[検索] ウィンドウと統合することで、ユーザーに検索機能を簡単に提供できます。 [検索] ウィンドウは、ユーザーがすべてのアプリで検索を実行するための中心的な場所です。 Windows は、[検索] ウィンドウを使用するアプリが、ユーザーができるだけ速く移動する場所を取得するのに役立ちます。 特に、IME ユーザー向けに、互換性のある IME を Windows 8 と統合して効率と使いやすさを向上させる独自の検索エクスペリエンスを提供します。
IME は、次の条件を満たしている場合、統合された検索エクスペリエンスと互換性があります。
- Windows ストア アプリ環境と互換性がある
- TFS UILess モード API を実装します
- TFS 検索統合 API を実装します。
-
- ItfSearchCandidateProvider
- ItfSearchHardwareKeyboardBehaviors
[検索] ウィンドウでアクティブにすると、互換性のある IME は UI レス モードになり、その UI を表示できません。 代わりに、変換候補が Windows に送信され、インライン候補リスト コントロールに表示されます。
IME は、現在の検索を実行するために使用する必要がある Windows 候補も送信します。これらの候補は、変換候補と同じか、検索用に調整できます。 適切な検索候補は、次の条件を満たしています。
- プレフィックスの重複なし
- 予測候補なし (完了のみ)
条件を満たせず、検索と互換性のない IME は、他の Windows ストア アプリ コントロールと同じ方法で表示され、UI 統合と検索候補を利用できません。 (アプリは、ユーザーの作成が完了した後にのみクエリを受け取ります)。
検索コントラクトをサポートするアプリがクエリを受け取ると、クエリ イベントには、最も関連性の高い (可能性が高い) から最も関連性の低い (可能性が低い) 順にランク付けされたすべての既知の代替手段を含む "queryTextAlternatives" 配列が含まれます。 代替手段が提供されるたびに、アプリは各代替候補をクエリとして扱い、(ユーザーが同時に複数のクエリを発行したかのように) いずれかの代替候補に一致するすべての結果を返し、基本的に結果を提供する "または" クエリをサービスに発行する必要があります。 パフォーマンスを向上させるために、アプリは多くの場合、最も関連性の高い 10 個の代替手段に一致を制限します。
IME デジタル署名 を する
Windows 8 システムに IME としてインストールするには、すべてのサード パーティの IME がデジタル署名されている必要があります。 SmartScreen を使用すると、Web から署名されていない IME をダウンロードするときに警告メッセージが表示されます。 証明書を取得してファイルに署名するには:
-
Authenticode 署名を使用してプログラムにデジタル署名する
- Windows でサポートされている多数の証明機関のいずれかから有効な Authenticode コード署名証明書を取得する
- 開発ツール (signtool.exeなど) を使用して、配布前にアプリに署名する
- コード署名プロセスの詳細と詳細な説明については、「Authenticode コード署名について知る必要があるすべて ブログ エントリ」を参照してください。
-
ダウンロードがマルウェア として検出されないようにする
- マルウェアとして検出され、確認されたダウンロードされたプログラムは、ダウンロードの評判と、そのファイルの署名に使用されるデジタル証明書の評判の両方に影響します
-
Windows 認定 に申請する
- MSDN の Windows アプリ認定ページにアクセスする
詳細については、デジタル署名とコード署名に関する次の記事を参照してください。
IME が 署名されていない場合、ユーザーは IME をダウンロードしようとしたときに次の警告メッセージを受け取ります。
IME が署名されている場合、ユーザーには代わりに次のメッセージが表示されます。
これらの通知に基づいて、ユーザーはファイルを削除するか、警告を無視してダウンロードしたプログラムを実行するかを選択できます。
IME 失効 を する
悪意のある IME または Windows 8 IME ガイドラインに従っていない IM は、Windows Defender を使用してシステムから削除できます。 悪意のある IME の詳細については、Windows 8 のサード パーティの IMEに関する記事を参照してください。
リソース
- ITfThreadMgrEx::Get Active Flags メソッド
- SignTool の
- Authenticode コード署名 について知る必要があるすべての情報
- Windows アプリ コントラクトと拡張機能 を する
- Windows 8 デスクトップ アプリの 認定要件
- Windows アプリ の 認定要件
- Windows アプリ認定キットの を使用した
- Authenticode の概要
- 整合性と信頼性の確保
- コード署名のベスト プラクティス
- デジタル証明書とは