1

そこで、Windows 7 SDK サンプルから RecipePropertyHandler を作成し、regsvr32 を実行して、PROPDESC ファイルを登録しました。Difficultyこれにより、詳細ペインの 3 つの状態のドロップダウン ボックスを使用して、タイプ のファイルで名前が付けられたカスタム プロパティを編集できるように.recipeなり、そのプロパティをエクスプローラの詳細ビューの列として追加するオプションも提供されます。

ここまでは順調ですね。ただし、この MSDN スレッドの指示に従おうとしていますが、奇妙なことがいくつか見られます。

まず、彼らが言及している 3 つのレジストリ エントリのいずれも表示されません。具体的には:

  1. HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertySchema\
  2. HKLM\Software\Microsoft\Windows\CurrentVersion\PropertySystem\PropertyHandlers.recipe
  3. HKLM\Software\Classes\CLSID{50D9450f-2a80-4f08-93b9-2eb526477d1a} [実際にはこれは Vista SDK からのもので、CLSID が変更されたように見えますが、新しいものはレジストリにもありません。]

彼らは他のスレッドで .reg ファイルについて言及していますが、もうそのようには機能しないと思います。価値があるのは、下にエントリが表示されることHKEY_CLASSES_ROOT\.recipeです。次のように prop.exe ユーティリティを使用して、インストールされたプロパティを確認することもできます。

C:\tools>prop.exe schema describe Microsoft.SampleRecipe.Difficulty
Microsoft.SampleRecipe.Difficulty
----------------------------------
Property Key:          {1794C9FE-74A9-497F-9C69-B31F03CE7EF9} 100
Canonical Name:        Microsoft.SampleRecipe.Difficulty
Property Type:         VT_LPWSTR
Display Name:          Recipe difficulty
Edit Invitation:       Specify recipe difficulty
Type Flags:            PDTF_CANGROUPBY | PDTF_CANSTACKBY | PDTF_ISVIEWABLE | PDTF_ISQUERYABLE
View Flags:
Default Column Width:  20
Display Type:          PDDT_ENUMERATED
Column State:          SHCOLSTATE_TYPE_STR
Grouping Range:        PDGR_ENUMERATED
Relative Desc. Type:   PDRDT_GENERAL
Sort Description:      PDSD_A_Z
Sort Desc. Labels:     A on top/Z on top
Aggregation Type:      PDAT_DEFAULT
Condition Type:        PDCOT_STRING
Condition Operation:   COP_WORD_EQUAL
Enumerated Types:      4
  0 PET_DISCRETEVALUE: Easy            VT_LPWSTR/[Easy]
  1 PET_DISCRETEVALUE: Medium          VT_LPWSTR/[Medium]
  2 PET_DISCRETEVALUE: Hard            VT_LPWSTR/[Hard]
  3 PET_DISCRETEVALUE: Really, Really Hard VT_LPWSTR/[ReallyReallyHard]
Search Info Flags:     PDSIF_ISCOLUMN | PDSIF_ISCOLUMNSPARSE
Column Index Type:     PDCIT_ONDISK
Projection String      Microsoft.SampleRecipe.Difficulty
Max Size:              512

とにかく、主な問題は、Windows エクスプローラーの検索 UI で正規名またはニーモニック名のいずれかを使用して、このプロパティをクエリできないかということです。それは私にはうまくいかないようで、サポートされているかどうかは他のスレッドからは明らかではありません。ただし、Vista と Windows 7 ではこの情報が別の場所に保存される場合があります。

ただし、少なくとも 1 つの非カスタム プロパティが高度な検索クエリ構文を使用してサポートされていることに気付きました。つまりMicrosoft.IE.VisitCount、ie9props.propdesc で定義されています。だから、これを行う方法がなければならないと思います。Advanced Query Syntaxpropertyname:valueを使用して入力すると、エクスプローラーの検索バーに青いテキストが表示されます。詳細ペインでカスタム編集 UI がサポートされているかどうかはわかります。プロパティがクエリ可能であれば、エクスプローラー UI に小さな検索フィルターが表示されます。

4

1 に答える 1

0

はい、動作します。何が原因なのか完全にはわかりませんが、少なくとも私のマシンでは動作するようになりました。正規名またはニーモニック エイリアスのいずれかを使用できます。コロン文字を押すと、Explorer の検索バーで青色に変わります。

古いスレッドで言及されているレジストリの場所は最新ではありません。Windows 7 の正しい値については、https://msdn.microsoft.com/en-us/library/windows/desktop/bb266532 (v=vs.85).aspx#prophandlers__installation を参照してください。

于 2015-06-25T18:56:52.003 に答える