5

プロセスに影響を与えることはできますか?
.NET 3.5/VS2008にアプリケーションが組み込まれています。win32.resファイルを使用してアプリに複数のアイコンを埋め込みました。これは、VS2008のプロジェクトの[プロパティ]ボックスで実行されます。.icoファイルを指定する代わりに、ボックスにチェックマークを付けて.resファイルを指定します。.resファイルには、複数のアイコンを含めることができます。私が何を意味するかについては、ここを参照してください。

各アイコンには、256x256xRGB(PNG Cmopressed)の「Vistagrade」画像、256x256x32bit画像、およびさまざまなカラーコンボの48x48、32x32、および16x16画像の通常のカスケードが含まれています。結果のexeをエクスプローラーで表示すると、大きくて美しい256x256Vistaの画像が表示されます。

次に、右クリック>[プログラムから開く...]>Vistaのエクスプローラーで[デフォルトのプログラム]クリックストリームを設定して、ファイル拡張子をアプリに関連付けることができます。ただし、ドキュメントの横に表示されるアイコンは、アプリアイコンの小さなバージョンであり、角が折りたたまれた白い紙のように見えるものの上にオーバーレイされます。

その結果、「小さなアイコン」バージョンで表示された場合、元の画像は小さく見えます。ひどいですね。

折りたたまれた紙を完全に省略したり、少なくともはるかに大きな画像を重ねたりすることが可能であることを私は知っています。たとえば、C#ファイルのアイコンには折りたたまれた紙がありますが、C#のエンブレムは大きくて見えます。どうすればこれを入手できますか?WinZip 12がインストールされているときの.zipファイルのアイコンは大きくて表示され、折りたたまれた紙はありません。

ドキュメント用アイコンはアプリケーション用アイコンとは異なりますか?Vistaがアプリに関連付けられたドキュメントに使用するアイコンを登録するために、アプリに何かしなければならないことがありますか?

4

1 に答える 1

13

ファイル拡張子のアイコンとファイルの関連付けは、レジストリに一覧表示されます。より具体的には、HKEY_CLASSES_ROOT\.extエントリにはコンテンツ タイプ、認識されたタイプが含まれ、(Default)値には実際の関連付けが含まれます。たとえば、.cs ファイルのデフォルト値はVisualStudio.cs.9.0(I've got VS 2008) です。をチェックしHKEY_CLASSES_ROOT\VisualStudio.cs.9.0て、このファイルの種類に関連付けられている実際のアイコン、プログラム、およびコマンドを確認できます。特に、これHKEY_CLASSES_ROOT\VisualStudio.cs.9.0\DefaultIconは、このタイプのファイルに対してどのアイコンを表示するかを Explorer に指示するエントリです。これは、バイナリとそのバイナリ内のリソース ID を指します。

右クリック -> [プログラムから開く...] を使用してファイルの種類をプログラムに関連付ける場合、既定のアイコンを指定しないため、エクスプローラーはアプリのアイコンを取得し、一般的なドキュメント アイコンの上に重ねます。

適切なアプローチは、セットアップの一部として適切なレジストリ エントリを含めて、ファイルの種類をアプリケーションとアイコンに関連付けることです。含める必要がある正確なレジストリ値は、そのファイルの種類のコンテキスト メニューに追加するコマンドによって異なりますが、少なくとも [開く] コマンドが必要です。.cs ファイルの場合、Open コマンドが呼び出されたときに起動するアプリケーションを含む値をHKEY_CLASSES_ROOT\VisualStudio.cs.9.0\Shell\Commands\Open持つエントリがあることがわかります。(Default)(今のところ、この部分は無視してかまいませんddeexec)

は、とHKEY_CLASSES_ROOTの 2 つのレジストリ ブランチのマップ ビューであることに注意してください。ファイルの関連付けをすべてのユーザーに適用する場合は、に書き込む必要があります。そのためには、セットアップを管理者として実行する必要があります。そうしないと、書き込みを試みると、アクセスが拒否されて失敗するか、書き込みを行って現在のユーザーに対してのみ関連付けが行われます。(どちらが正確に発生するかは、OS の種類、ユーザーが管理者であるが昇格されていないかどうかなど、いくつかの要因によって異なります)HKEY_CURRENT_USER\Software\ClassesHKEY_LOCAL_MACHINE\Software\ClassesHKEY_LOCAL_MACHINEHKEY_CLASSES_ROOTHKEY_CURRENT_USER

このすべてについては、MSDN の「ファイルの種類 (ファイルの関連付け) のカスタマイズ」セクションで読むことができます。特に、ファイルの種類クライアント プログラムへのプログラムの登録では、これを正確に行う方法の基本を説明します。

于 2009-02-24T08:20:24.470 に答える