Windows 10 Fall Creators Update において、未確定文字列の確定タイミングが変更されました

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、詳細なテキスト サービス (Text Service Framework、以降 TSF) に対応していないアプリケーション  (以降、TSF 非対応アプリケーション) 上で入力した文字の確定タイミングが、Windows 10 Fall Creators Update において変更されたことについてご案内します。   テキスト ボックスなどの文字入力が可能なウィンドウに文字を入力すると、入力した文字が一旦未確定の状態 (文字の下に波線が表示された状態) で表示されます。 Windows 10 Creators Update 以前の OS では、TSF 非対応アプリケーション (Notepad.exe 等) 上のウィンドウに入力した文字が未確定状態のまま、他のウィンドウにフォーカスを移動すると、未確定状態の文字が一旦非表示となりました。 そして、元のウィンドウにフォーカスを戻すと、再び未確定状態の文字が表示されて、文字の編集・入力を継続することができました。   これに対し Windows 10 Fall Creators Update からは、同様に入力した文字が未確定状態のまま他のウィンドウにフォーカスを移動すると、未確定状態だった文字が確定されるようになりました。 またこの時、未確定文字が確定されたことに伴い、そのことを通知する WM_IME_ENDCOMPOSITION メッセージが、フォーカスを移動する前のウィンドウに対して送信されるようになりました。   元々この動作は、TSF に対応しているアプリケーション (Wordpad 等) における既定の動作でした。 Windows…


Fall Creators Update を適用後 DataGridView に文字を入力すると 2 文字入力される

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Fall Creators Update を適用すると Windows フォーム アプリケーションの DataGridView で文字が 2 文字表示される現象についてご案内します。   現象 Windows フォーム アプリケーションで DataGridView のセル自体が選択されている状態で日本語 (全角文字、カタカナ) を 1 文字入力すると、確定された状態で 2 文字が表示されます。 例)写真 1 の状態で「あ」と入力するため「A」キーを 1 回押下すると、写真 2 のように「ああ」と 2 文字が確定された状態で表示されます。 写真 1 写真 2   この現象は Fall Creators Update を適用した Windows 10 で発生を確認しており、以前のバージョンでは発生しません。 写真のような Visual Studio で…


LTSC (Long-Term Servicing Channel) の判定方法

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、Microsoft の新しいサービシング モデルである LTSC (Long-Term Servicing Channel) の Windows をプログラムから判定する方法をご案内します。   プログラムから判定する方法には二つあります。 一つは WMI の Win32_OperatingSystem クラスの OperatingSystemSKU プロパティを参照する方法で、もう一つは Win32 API の GetProductInfo() の第五引数に返される値を参照する方法です。 以下に、MSDN ライブラリのリファレンスから該当箇所を引用し、それぞれ URL をご紹介します。   ◆ Win32_OperatingSystem class https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa394239.aspx OperatingSystemSKU Data type: uint32 Access type: Read-only Qualifiers: MappingStrings (“WMI”) Stock Keeping Unit (SKU) number for the…


StorageFolder.GetFilesAsync() メソッドの結果が正しく返されない問題について

こんにちは、Platform SDK (Windows SDK) サポートチームです。 今回は、StorageFolder.GetFilesAsync() メソッドに関して確認されている問題についてご案内します。   現象 「[マイ コンピューター] からドライブにアクセスできないようにする」のポリシーが有効になっているドライブ上のフォルダに対して StorageFolder.GetFilesAsync() メソッドを実行しても、ファイルの一覧が取得できません。 フォルダ内ににファイルが存在するにも関わらず、取得される結果は 0 件となってしまいます。 この現象は、StorageFolder.GetFilesAsync() メソッドに限らず、StorageFolder.GetFoldersAsync() メソッドや StorageFolder.GetItemsAsync() メソッドを実行した場合にも発生します。 これらのメソッドを呼び出した際に、インデックスを使用しないクエリが選択された場合に限り発生いたします。 インデックスが使用されないクエリは、以下のいずれかの条件を満たした場合に実行されます。 ・GetFoldersAsync() のように引数なしで呼び出した場合 ・引数として CommonFolderQuery.DefaultQuery を指定した場合 ・IndexerOption.DoNotUseIndexer のオプションを明示的に指定した場合 「[マイ コンピューター] からドライブにアクセスできないようにする」のポリシーは、グループポリシー エディタ内の以下のパスに存在します。 [ユーザーの構成] – [管理用テンプレート] – [Windows コンポーネント] – [エクスプローラー]   原因 この現象は、Windows ランタイム API の一部である StorageFolder クラスの不具合によって発生します。   回避策 有効な回避策はございません。 「[マイ…