プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2016/05/19

[Windows]スクリーンキーボードの起動がとても遅くなった時の原因を追求したお話

Windows Embedded Standard 7を使用した製品を開発中に、ある時点からスクリーンキーボードの起動がとても遅くなってしまいました。
通常2、3秒で起動するところが、30秒ほどかかるようになってしまいました。
ネットで検索しても、英語キーボードと日本語キーボードの違いくらいしか見つかりません。
その時に、何が原因か追求した時のお話です。

まずは、その重くなった前後で何をしたかです。
私の場合、DISMを使用してパッケージの追加を行いました。(具体的にはPremium Codecsのパッケージを追加)
ですので、これに原因があるであろうことは容易に想像できました。
しかし、具体的に何が悪かったのはわかりません。

まずはリソースモニターなどでCPUの使用率などを見てみますが、まだまだ余裕があったので、処理に負荷がかかっているわけではなさそうです。

次に疑ったのが、パッケージの追加により追加されたサービスが影響しているのでないかということです。

というわけで、パッケージを追加する前と後で、実行中のサービスを比較し、パッケージ追加後に追加されたサービスを調べました。
サービスの表示は、「ファイル名を指定して実行」より「msconfig」と打ち、「サービス」のタブより確認できます。

この結果、パッケージ追加後に追加されたサービスは以下の4つでした。

  • Application Experience
  • Offline Files
  • WinHTTP Web Proxy Auto-Discovery Service
  • Windows Search

そして、この4つのサービスを停止させると、スクリーンキーボードの起動が早くなったので、この中のどれかが原因であることがわかりました。
あとは1つずつ停止させて確認するだけです。

結論を言うと、「WinHTTP Web Proxy Auto-Discovery Service」が原因でした。
内容を見ても停止させても問題なさそうなので、これを停止させることで解決です。
各サービスの解説は以下のサイトを参考にさせていただきました。

尚、上記のサイトを参考にすると、「Application Experience」以外は不要そうなので、結局3つ停止しました。

これはあくまで私の例であり、実際の状況は様々だと思いますが、何か起動に時間がかかるようになったアプリケーションがある場合に、何が原因かを探る際の参考になればと思います。