0

特定のファイル タイプのコンテキスト メニューに項目を追加する必要があります。追加することによって行われる Windows 7 および以前のバージョンでは

HKEY_CLASSES_ROOT\<extension>\shell\<commandname>\command

の値を持つキー

@="<path_to_app> \"%1\""

登録します。Windows 8 では動作しません。それぞれのタイプの PersistentHandler キーを削除した後でも: レジストリのスクリーンショット

興味深いことに、シェル/コマンド キーがHKEY_CLASSES_ROOT\*\セクションに記述されている場合、コンテキスト メニュー項目は期待どおりすべてのファイルのメニューに表示されますが、既存の関連付けを壊さずにアプリケーションを 2 ~ 3 個のファイル タイプにのみ追加する必要がある場合、これは大きなオーバーヘッドになります。 . 私はMicrosoft.Win32.Registry.ClassesRootこのロジックを実装するために C# を使用していますが、a) Windows 7 で動作する b) Windows 8 で管理者特権を使用して手動で編集しても、必要な関連付けが追加されないため、問題は間違いなくコードにはありません。

4

2 に答える 2

2

.avi ファイルには確かに [開く] コンテキスト メニュー項目がありますが、最初は「シェル」キーがなかったことに気付いたに違いありません。追加レベルの間接化があります。.avi キーのデフォルト値に注意してください。これは、.avi ファイル名拡張子に関連付けられた ProgId です。

それに従って WMP11.AssocFile.AVI キーに移動し、シェル コマンドを見つけて、そこにコマンドを追加します。

于 2013-02-21T12:59:14.227 に答える
1

「HKEY_CLASSES_ROOT\SystemFileAssociations\video」は、非 WMP デフォルト メディア プレーヤーを備えたシステムの .avi ファイルの「実際の」サブツリーです。私が興味を持っていた.mkvファイルタイプは、別のサブツリー「mkv_auto_file」も作成します。なぜそれが行われたのか、どこに文書化されているのかわかりませんが、私の問題は解決しました。ハンスさん、ご案内ありがとうございます。

于 2013-02-21T21:00:26.960 に答える