2

InDesignCS2とCS3の両方をインストールしています。どちらも拡張子が.inddのファイルを使用します。Windowsはどのアイコンを使用するかをどのように認識しますか?正しいアイコンを使用します。つまり、CS2ファイルにはcs2アイコンがあり、CS3ファイルにはCS3アイコンがあります。

Windowsはこれを行う方法をどのように知っていますか?

また、このバージョン検出システムをプログラムで抽出または使用するにはどうすればよいですか?

編集:

shell-extension-icon-handlerの回答ありがとうございます。私にとって新しい何か。しかし、InDesignが提供するIconHandlerに接続し、それを使用してInDesignファイルのバージョンを検出する方法はありますか?

4

3 に答える 3

5

Icon Handler シェル拡張を作成する必要があります。については、 MSDNのドキュメントを参照してくださいIExtractIcon。基本的なメカニズムは、シェル拡張を作成し、必要なファイル タイプのアイコン ハンドラーを登録することです (HKEY_CLASSES_ROOT/.indd を参照)。その後、シェルはハンドラーをロードし、ファイル情報を渡し、代わりにアイコンを要求します。アイコンだけでなくサムネイル ビットマップを提供する場合は、IExtractImageメソッドもあります。

シェル拡張ハンドラーの作成には特に注意する必要があることに注意してください。メモリ リークやクラッシュが発生すると、ファイルを開く/保存するダイアログを表示するエクスプローラーやその他のアプリケーションが停止する可能性があるためです。

于 2010-02-25T18:06:55.663 に答える
2

一部のファイルではHKEY_CLASSES_ROOT\<file extension here>\DefaultIconレジストリ エントリですが、ほとんどのファイルはわかりやすい名前にマップされます (例: .pdf\(Default)-> AcroExch.Document(Adobe Reader がインストールされている場合))。

その場合、レジストリに沿って移動し、次のAcroExch.Documentいずれかを確認する必要があります

  • DefaultIconすぐそこにある、または
  • AcroExch.Document\CLSID\(Default)いくつかのGUIDです。次に、フォローHKEY_CLASSES_ROOT\CLSID\<insert that guid here>すると、このキーに含まれていることがわかりますDefaultIcon

...そしてDefaultIcon、アイコンがロードされる場所です。

それが十分に明確であることを願っています;)。あなたの特別なケースについてはわかりませんが、レジストリには区別があるはずです。

于 2010-02-25T18:09:27.760 に答える
1

ほとんどの場合、シェル アイコン拡張ハンドラがインストールされます。十分に文書化されていない、またはまったく文書化されていないファイル形式のバージョンを検出する方法を知っていて、独自のファイルを作成することは、非常に注意が必要です

于 2010-02-25T18:09:08.793 に答える