2009-03-25 11 views
1

一部のWindowsプログラムでは、同じ拡張子の異なるファイルに対して異なるアイコンを使用できます。ファイルインスタンスごとのカスタムアイコン

  • slnファイルは、溶液が
  • (実際には、slnファイルのトップラインのバージョン番号によって決定される)で行われたのVisual Studioのバージョンに応じて異なるアイコンを表示することができPhotoshopの.PSDファイルがする.urlショートカットファイルが

私はそれを推測しているInternet Explorerの、からで開かれた、または保存されている場合、ページのファビコンを持って

  • 画像のサムネイルとアイコンを持っていますそのコンピュータだけのカスタムでなければなりません。 Visual Studioがインストールされていないボックスには、.slnファイルにはデフォルトの「このプログラムが分からない」というアイコンしかありません。レジストリで変更する必要があるものはありますか?

    どうすればいいですか?私は自分のプログラムにファイルとカスタムアイコンを関連付けるオプションを持っていたいと思います。

    [編集]私は実際にこれを管理コードで行うことができます。 (< SDK v1.1 > \ Samples \ Technologies \ Interop \ Applications \ ShellCmd)でも可能ですが、実際には潜在的に危険であり、間違ったツールであるようです。http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/1428326d-7950-42b4-ad94-8e962124043e/。私は本当にこの種のもののためにMSが優れた管理APIを今までに持っていることを望んでいました。

  • 答えて

    3

    このチェックアウトC++ code on CodeProject:本質的に、あなたはCOMハンドラを書いてあなたのエクステンションに登録します。アイコンハンドラやシェル拡張でリソースが漏れた場合は、Explorerプロセスをかなり乱暴にする可能性があることに注意してください... C++は難しいかもしれませんが、メモリ消費の理由からC#またはJavaでこれを行うことはお勧めしませんそれぞれの拡張機能/ハンドラのためのフレームワークコードの別個のコピー!)。

    +0

    .NET/Javaについての優れたリンクと警告。私は前にC++でコード化したことはありません。私はC++を学ばない限り、これは私のスキルレベルを超えていますか? – Dinah

    +0

    .NETでCOMインターフェイスを実装することは簡単ですが、エクスプローラのプロセスは膨大になります。それはあなたが達成したいことにかかっています...しかし、小さなメモリフットプリントはプラグインのための明確なプラスです! –

    +0

    C++とCOMはどちらも、かなり重たいプログラミングです。どのような手段でも不可能ではありませんが、多くの事柄が漏れを起こすことはありません。 –

    関連する問題