web-dev-qa-db-ja.com

レジストリ内の1つのファイル拡張子に複数のコンテキストメニュータイプを関連付けるにはどうすればよいですか?

開発中のプログラムの特定のファイル拡張子(.Zipファイルなど)にカスタムコンテキストメニューオプションを追加したいと思います。ただし、多くの(すべてではない)PCでは、ソフトウェアが7-Zipにもインストールされるため、[HKEY_CLASSES_ROOT.Zip]はレジストリ内の[HKEY_CLASSES_ROOT\7-Zip.zip]を参照しています。

元の7-Zipインストールを改ざんしたくないので、コンテキストメニューオプションを一番上に追加したいだけです。ただし、[HKEY_CLASSES_ROOT.Zip\Shell]のエントリは無効であり、[HKEY_CLASSES_ROOT.Zip]のデフォルト値がすでに使用されているため、[HKEY_CLASSES_ROOT.Zip]を[HKEY_CLASSES_ROOT\MyApp.Zip]にリンクする方法がわかりません。 7-Zipによる。

どんな助けでも大歓迎です:)

5
Sebastian

.Zipファイルが唯一の懸念事項である場合は、[HKEY_CLASSES_ROOT\CompressedFolder]キーを安全に使用できます。

これは、Windowsが.Zip関連の機能のためにこのキーをネイティブに使用し、サードパーティのソフトウェア製品(7Zipを含む)がほとんどの場合このキーをMicrosoftと共有する傾向があるためです。これにより、開発者は、.ZipファイルのネイティブWindowsの「フォルダのような」処理中に保存独自の機能を追加できます。

ただし、[HKEY_CLASSES_ROOT\.Zip]のデフォルト値が[HKEY_CLASSES_ROOT\7-Zip.zip]を参照しているのは奇妙です。それらの古いバージョンでさえ正しい[HKEY_CLASSES_ROOT\CompressedFolder]エントリを設定することはまだ可能です-あなたはチェックしなければならないでしょう。

1

私が自分のコンピューターで観察したことから、.Zip拡張子を安全に「ハイジャック」することができます。

私は7Zipより前にWinZipをインストールしたので、.Zip拡張機能を引き継いだのはWinZipでしたが、7Zipは厳密にそのままにしました。

ただし、7Zipは、.Zipファイル(特に)をキャッチするすべてのファイルタイプの一般的な拡張子もインストールするため、.Zipファイルに対しては完全に機能します。

事実上、私の意見では、7Zipが.Zip拡張機能も引き継ぐのはやり過ぎです。

0
harrymc