web-dev-qa-db-ja.com

Windowsがアイコンオーバーレイを15に制限するのはなぜですか?

DropboxとTortoiseSVNと他の多くのアプリアイコンオーバーレイの競合に関する無限の質問を見ることができます。

2つの例:
(8rdParty-Appsからの)アイコンオーバーレイがWin8 Explorerに表示されないのはなぜですか?
オーバーレイアイコンの変更を防止できますか?

私の場合、私はDropboxとTortoiseSVNしか持っていません。 Dropboxは本当に煩わしくなってきています-すべての更新の後で、Dropboxのオーバーレイをレジストリから削除してWindowsエクスプローラーを再起動するスクリプトを実行する必要があります。

おそらくパフォーマンスのために、Windowsがオーバーレイを15に制限していることを理解しています。
しかし、25〜35に増加すると、パフォーマンスに大きな影響を与えますか?
これが非常に一般的な問題であることをマイクロソフトがまだ認識していないため、なぜこれを修正しようとしていないのですか?
少なくとも、上級ユーザーがこの制限を増やすために変更できるオプションがないのはなぜですか?

29
Nuno

私の場合、私はDropboxとTortoiseSVNしか持っていません。 Dropboxは本当に厄介なものになっています-すべての更新の後で、Dropboxのオーバーレイをレジストリから削除してWindowsエクスプローラーを再起動するスクリプトを実行する必要があります。

次の場所から未使用のオーバーレイを削除します。

  • KEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIcon‌ OverlayIdentifiers

  • KEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\explor‌ er\ShellIconOverlayIdentifiers

ソース: (8rdParty-Appsからの)アイコンオーバーレイがWin8 Explorerに表示されないのはなぜですか?

25〜35に増やすと、パフォーマンスに大きな影響を与えますか?

現在の制限を変更することはできないため、制限を増やした場合にパフォーマンスにどのような影響があるかを予測することはできません。

これが非常に人気のある問題であることをMicrosoftがまだ認識しておらず、これを修正しようとしていないのはなぜですか?

私はそれがあなたがそれを考えているよりも少ない人々に影響を与えると思います。この答えを知っているのは、Windows Shellチームの誰かだけです。 Microsoftが決定の決定を知らせるまで、私たちは知識に基づいた推測しかできません。これは基本的に誰も制限を増やしていないということです。

少なくとも、上級ユーザーがこの制限を増やすために変更できるオプションがないのはなぜですか?

この答えを知っているのは、Windows Shellチームの誰かだけです。 Microsoftが決定の決定を知らせるまでは、知識に基づいた推測しかできません。これは基本的に、制限を増やすためのコードを誰も作成していないということです。

マイクロソフト開発者のレイモンドチェンは、アイコンオーバーレイについて次のように述べています。

一般的に言えば、オーバーレイはアイコンごとに1つしか存在できず、ImageListごとに15のオーバーレイの制限があるため、オーバーレイは情報を提示する良い方法ではありません。アイテムに適用されるオーバーレイが2つ以上ある場合、1つが勝ち、他のオーバーレイが負けます。その時点で、アイテムに適用されるプロパティを決定する方法としてのオーバーレイの値は、確認する唯一の方法なので減少します。プロパティが欠落しているのは、オーバーレイがまったく表示されない場合です。 (他のオーバーレイが表示された場合、それが原因がプロパティがないか、他のオーバーレイが表示されているためかはわかりません。)

チェン氏はまた、次のように述べています。

パフォーマンスの利己的な見方を持つアプリケーションのもう1つの例は、アイコンオーバーレイハンドラーを開発している会社から来ました。シェルはオーバーレイの計算を優先度の低い項目として扱います。ユーザーがやりたいことを何でもやり始めることができるように画面にアイコンを表示することがより重要だからです。装飾は後で来ることができます。この会社は、アイコンが表示される前でも、パフォーマンスを向上させて画面にオーバーレイを表示できる方法があるかどうかを知りたいと考えていました。

ソース: これらの小さなオーバーレイアイコンは何ですか:Windows 7エディション

26
Ramhound

Raymond Chenからのトピックに関する新しいブログ投稿があります: なぜシェルアイコンオーバーレイが15に制限されているのですか? これはさらに詳細になりますが、短いバージョンです:理由は互換性です古いバージョンとAPI、パフォーマンスの問題、最近のアイコンオーバーレイの使用が推奨されないという事実:

基本的には「骨の折れる作業であり、私たちは怠惰です」ということになります。

そしてまた:

しかし、これが行われない主な理由は、ファイルに関するメタデータをユーザーに伝える方法としてオーバーレイ が推奨されていないことだけです

そして:

Windows 10は、OneDriveファイル同期ステータスインジケーターをアイコンオーバーレイから別のステータス列に移動することで、アイコンオーバーレイから一歩離れました。

6
Borislav Ivanov

誤解も修正したいです。はい、合計15個のアイコンが割り当てられていますが、実際には11個のオーバーレイアイコンが利用可能です。これは、Windowsシステムが4個を予約しているためです実質的には、他のプログラムで使用できる11個のアイコンです(15-4 = 11)。これは Microsoftの公式サポートWebサイトアーカイブされたURL )によると

システムがサポートできるアイコンオーバーレイハンドラーの数は、システムイメージリスト内のアイコンオーバーレイに使用できるスペースの量によって制限されます。現在、アイコンオーバーレイ用に15のスロットが割り当てられており、そのうち4つはシステムによって予約されています。 システムに11を超えるアイコンオーバーレイハンドラーが登録されている場合、アイコンオーバーレイハンドラーによって提供される最初の11のアイコンオーバーレイのみがシステムイメージリストに追加されます。残りのアイコンオーバーレイハンドラーは使用されません。

ソース: Microsoftの公式サポートWebサイトアーカイブされたURL

PSA通知:

私はまた、すべてのシェルアイコンオーバーレイを一覧表示するためだけに専用のWikipediaページを設計したので、ユーザーは、Dropbox、OneDrive、Tortoiseなどで自分に最も役立つオーバーレイを特定できます。

私のWikiページをチェックして、貢献してください:

https://en.wikipedia.org/wiki/List_of_Shell_Icon_Overlay_Identifiers

5
rwat128