問題タブ [propertyhandler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
244 参照

explorer - Windows サーチはファイル プロパティをどこで検索しますか?

一部の標準プロパティと一部のカスタム プロパティを使用して、カスタム ファイル形式用のシェル プロパティ ハンドラを実装しました。エクスプローラーでファイルを参照すると、プロパティが適切に表示されますが、ファイルが検索結果に表示されると表示されません。エクスプローラーが検索結果を表示するときに、プロパティ ハンドラーを照会していないようです。

私の質問は次のとおりです。エクスプローラーが検索結果にアイテムを表示するとき、アイテムのプロパティはどこで検索しますか? 適切なハンドラーを照会しますか、それともある種の検索キャッシュのどこかを探しますか?

ハンドラーを照会する場合は、ハンドラーが呼び出されない理由を調査します。(登録エラーかもしれません。) 検索キャッシュにある場合は、ファイルのインデックスが適切に作成されていない理由を調査します。

2 つ目の質問:検索結果ペインは、標準プロパティの限られたサブセットに制限されていますか? つまり、ここで興味深いプロパティを表示することをあきらめるべきでしょうか?

いくつかの観察:

  • 私たちのファイル形式は、.msg (Outlook 電子メール メッセージ) を .msga に名前を変更しただけです。ハンドラーは、.msg ファイル形式の読み取り方法を認識しています。
  • プロパティ値がブラウズ モードで正しく表示されます。
  • 検索モードでは表示されません。
  • プロパティ値は、どちらのモードでも、エクスプローラーの詳細ペインに正しく表示されます。
  • 一部の標準プロパティは検索結果に OK と表示されますが、その他のプロパティは表示されず、カスタム プロパティも表示されません。たとえば、これらはすべて OK と表示されますが、ハンドラーによって処理されません: System.ItemNameSystem.ItemUrl、。これらはハンドラーで使用できますが、表示されません: 、、。System.SizeSystem.DateCreatedSystem.TitleSystem.Message.FromAddressSystem.Message.DateSent
  • HKCR\<progid>ContentViewModeForSearch などを編集すると表示が適応するため、エクスプローラーは明らかにレジストリ キーを読み取っています。
  • 私たちの .msga ファイル タイプは、インデックス付きファイル タイプとしてコントロール パネルに表示され、ファイルはインデックス付きディレクトリにあります。そして今朝、インデックス全体を再構築しました。
  • フィルターは実装していません。コントロール パネルには、.msga に「Office Outlook MSG IFilter」を使用していると表示されます。(これがどのように理解されたのかはわかりません。プロジェクトの早い段階でレジストリ設定をコピーしたか、プレビューに Outlook を使用しているため、Windows が推測したのかもしれません。)
  • ハンドラーは IPropertyStore を実装していますが、そのメソッドは呼び出されないようです。(検索インデクサーがアクセスできるファイルへのログ記録を実装しましたが、それについては確信が持てません。)
  • インデックス作成中に Event Viewer に Gatherer エラー 3036 が表示される: " The content source <csc://{S-1-5-21-2153095834-1917727522-598830505-500}/> cannot be accessed." SID は私のユーザー アカウントだと思うので、特権を持たないものにインデックスを作成しようとしているのだろうかと思います。
0 投票する
0 に答える
440 参照

c# - カスタム ファイルの拡張プロパティを追加する

このツールを使用して .svg 拡張子のメタデータ プロパティ ハンドラーを追加した後、Windows エクスプローラーを介して .svg ファイルにキーワードを追加できるようになりました。

FileMeta アソシエーション マネージャー

現在、C# アプリケーションを使用してキーワードを追加する方法を探しています。私はこの解決策を見つけましたがSystem.AccessViolationException、コードでスローされます:

原因は何ですか?


編集:

このメソッドは正しく機能しますがCOMException、タグの長さが長すぎる場合にスローされます。