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


25

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

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

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

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


しばらく前にこのマイクロソフトに尋ねたところ、理由として「パフォーマンスの問題」と言われました。彼らは制限を増やしていません。彼らを完全に殺す計画もあります。
magicandre1981

パフォーマンスだけではありません。現在の実装では、最大15のオーバーレイを提供するオーバーレイインデックスを定義する構造体に4ビットがあります。この数を増やすために必要な上位ビットは、別の目的に使用されます。より多くのオーバーレイアイコンを取得する唯一の方法は、実装を変更することであり、これは互換性に大きく影響します。現在の実装に依存し、それが変更された場合に機能しなくなる多くのアプリケーション(すべてのルールに従う、よく書かれたアプリケーション)があります。
LMiller7

回答:


23

私の場合、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

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

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

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

なぜマイクロソフトは、これが非常に一般的な問題であることに気付いておらず、これを修正しようとしたのですか?

私はあなたが思うよりも少ない人に影響を与えると思います。実際にこの答えを知っているのは、Windows Shellチームの誰かだけです。Microsoftが決定を決定するまでは、経験に基づいた推測しかできません。基本的には、だれも制限を引き上げていないということです。

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

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

Microsoft開発者のレイモンドチェンは、アイコンオーバーレイについて次のように述べています

一般的に、アイコンごとにオーバーレイは1つしか存在できず、ImageListごとに15のオーバーレイの制限があるため、オーバーレイは情報を表示するのに適した方法ではありません。アイテムに適用されるオーバーレイが2つ以上ある場合、1つが勝ち、もう1つが失われます。プロパティが欠落しているのは、オーバーレイがまったく表示されていない場合です。(他のオーバーレイが表示されている場合、プロパティが見つからないためか、他のオーバーレイが自分の代わりに表示されているためかはわかりません。)

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

パフォーマンスの利己的なビューを持つアプリケーションの別の例は、アイコンオーバーレイハンドラーを開発している会社から来ました。シェルは、ユーザーがやりたいことを何でもやり始めることができるように画面上にアイコンを表示することがより重要であるため、オーバーレイ計算を優先度の低いアイテムとして扱います。装飾は後で来ることができます。この会社は、アイコンが表示される前でもパフォーマンスを改善し、画面にオーバーレイを表示できる方法があるかどうかを知りたかったので、「パフォーマンス」の驚異的な利己的な解釈が示されました。

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


1

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

基本的には、「多くの作業になり、怠け者です」ということになります。

また:

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

そして:

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


うん!OneDriveの動作が異なることに気付き、「オンラインのみ」のファイルを表示することもできます。これは非常に優れた機能であり、柔軟性が向上しているようです。情報ありがとうございます。
ヌーノ

0

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

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

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

PSA通知:

また、すべてのシェルアイコンオーバーレイを一覧表示する専用のウィキペディアページも設計しました。これにより、ユーザーはDropbox、OneDrive、Tortoiseなどで自分にとって最も役立つものを特定できます。

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.