Vistaのラベル-テイク2

前の記事からの憎しみの多さに恐れて、私はVistaユーザーのためにタグで少し恥ずかしさを明るくすることにしました。 まあ、実際、それはどういうわけか非常にひどく判明しました-特に私自身は長い間それをやりたかったのですが、私の手は届きませんでした...



だから、会う-タッグ!



これは何?

これは、追加のプロパティをファイルにバインドできるWindowsシェル拡張です。 これまでのところ、タグ、コメント、評価という3つのプロパティがあります。 必要に応じて、他のものを追加することもできますが、何かを検討する必要がありました。



値は、TaggDataと呼ばれる代替NTFSストリームに格納され、ユーザーには完全に見えず、システムに対して透過的です。 ファイルストリームにXML-kiからの隠れた脅威が存在する、偏執的なウイルス対策プログラムがない場合。



どのように機能しますか?



まず、Tagg.dllライブラリは、regsvr32コマンドを使用して(もちろん管理者から)COMオブジェクトとしてシステムに登録されます。 次に、コード名{09ECDDF2-61C3-4bb6-88C6-70BC292AD0EC}のクラスエントリが表示されます。



次のステップは、フィルターによって処理されるファイル拡張子を示すことです。 残念ながら、Vistaではすべてのファイルにグローバルプロパティハンドラーを指定できないため、必要なすべての拡張子をHKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ PropertySystem \ PropertyHandlersブランチに追加する必要があります。 既にいくつかの拡張機能があるので、類推して追加します。

ハンドラーが特定の種類のファイルに既に登録されている場合、それは重要ではありません。 追加のフォールバックレジストリキーでCLSIDを「移動」し、デフォルトキーでCLSIDを指定するだけで十分です。Taggは独自のプロパティセットを追加します。



ここで、ファイルの種類ごとにプロパティを表示する場所とケースを指定する必要があります。

Windows Vistaでは、以前のバージョンと同様に、ファイルタイプのプロパティは「prop:System.ItemType; System.Size; ...」のような文字列としてレジストリに設定されます。 ツールチップ、タイル、詳細情報のいずれの場合でも、プロパティごとに独自の行が提供されます。

したがって、これらの行に必要なプロパティ、System.Keywords、System.Comment、およびSystem.Ratingを挿入する必要があります。 そして、ここにもセットアップがあります-これらの行もレジストリ全体に非常に散らばっています。 ここでは、たとえば、優先順位の主要な場所はHKCR \ SystemFileAssociation、HKCR、HKCR \ *です。 そのため、適切な場所を探して少し汗をかかなければなりません...(ヒント:必要に応じて、このためのユーティリティを作成できます;))



十分な言葉!



たとえば、pngファイルにタグを追加します。

それでは、拡張機能のバインディングから始めましょう。



ご覧のとおり、彼には既にハンドラーがいたので、古いハンドラーはフォールバックに移動しました。

プレビュー用のプロパティバーを少し変更してみましょう...



そして...出来上がり!



タグを変更して追加できます...



...グループ化し、それらでフィルタリングします...



...検索とレイアウト(ここで「スタック」を正しく翻訳する方法がまだわかりません)...





また、フォトギャラリーなどの既存のプログラムに見事に統合されています...



...またはSnipping Tool ...





さて、dll-kuへのリンク自体: リーク迅速 、あなたが望むもの)



UPD:バージョン1.0.0.2 hereおよびhere 。 エクスプローラーのランダムな評価のバグを修正しました。



これまでのところ、完璧とはほど遠い(手動での登録は面倒)が、すでにかなり使いやすい。



ところで、すべての幸せな恋人たち! 憎しみとカルモカストラツィヤを減らし、愛と創造性を高めましょう!



All Articles