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」が原因でした。
内容を見ても停止させても問題なさそうなので、これを停止させることで解決です。
各サービスの解説は以下のサイトを参考にさせていただきました。
- http://windows7service.spinse.net/category/10276323-1.html
- http://windows7service.spinse.net/category/10287791-1.html
- http://windows7service2.spinse.net/category/10360222-1.html
- http://windows7service2.spinse.net/category/10353220-1.html
- http://tooljp.com/windows/Windows7Services/
- http://speedup-xp.com/win7org/39.html
尚、上記のサイトを参考にすると、「Application Experience」以外は不要そうなので、結局3つ停止しました。
これはあくまで私の例であり、実際の状況は様々だと思いますが、何か起動に時間がかかるようになったアプリケーションがある場合に、何が原因かを探る際の参考になればと思います。