私は'95年からエクスプローラーメニューに取り組んでおり、'c/c++'でシェル拡張をオーサリングできるようにしています。信じるファイル関連付けキーがどのように機能するかはすでに理解しています。
私の問題は、txtファイルを右クリックしたくないのですEdit
が、表示されるキーがないことです(編集登場おそらく、レジストリにユーザーごとのエントリを使用してこれを修正できる新しい場所があるのでしょうか?ちなみに、削除してOpen
もPrint
問題ありません。編集そこには無いから!
多数のエディターを保持するためにサブメニューを作成しましたが、追加の「編集」は煩わしいだけです。
皆さんの手間を省くために、数枚の写真は数千語に値します。
この機能は何らかの理由でエクスプローラーにハードコードされていると想定しています。それが間違っていることを願っています。
また、実行時にメニューを編集するためのシェル拡張機能を作成できることはわかっていますが、この場合は使用できません。単に無視します。
助けて、オビ=ワン・エクスプローラー、グル・ケノービ。君が私の唯一の希望だ。
答え1
使用できますNirSoft のファイルタイプマネージャー特定の拡張子に関連付けられているメニュー項目を確認し、直接編集します。FileTypesMan は関連するレジストリ キーをまとめてプールするため、長いレジストリ検索が不要になります。
txt ファイルの場合、エクスプローラーのメニュー エントリの場所は次のようになります。
HKEY_CLASSES_ROOT\.txt (file type)
HKEY_CLASSES_ROOT\txtfile (perceived type)
HKEY_CLASSES_ROOT\SystemFileAssociations\.txt (default file type)
HKEY_CLASSES_ROOT\SystemFileAssociations\text (default perceived type)
「編集」メニュー項目
謎の「編集」コマンドはここにあります:
Computer\HKEY_CLASSES_ROOT\SystemFileAssociations\text\shell\edit
SystemFileAssociations キー
HKEY_CLASSES_ROOT\SystemFileAssociations の下に登録されたサブキーにより、シェルはファイル タイプの属性の既定の動作を定義し、共有ファイルの関連付けを有効にできます。ユーザーがファイル タイプの既定のアプリケーションを変更すると、新しい既定のアプリケーションの ProgID が、動詞やその他の関連付け情報の提供において優先されます。この優先順位は、関連付け配列の最初のエントリであるためです。既定のプログラムが変更されると、以前の ProgID の情報は使用できなくなります。
ソース:https://docs.microsoft.com/en-us/windows/win32/shell/アプリ登録
HKEY_CLASSES_ROOT キー
状況に応じて、HKEY_CLASSES_ROOT の編集は次のいずれかのキーに反映されることに注意してください。
HKEY_CURRENT_USER\Software\Classes
HKEY_LOCAL_MACHINE\Software\Classes
デフォルト設定を変更するには、変更内容を HKEY_LOCAL_MACHINE\Software\Classes に保存します。HKEY_CLASSES_ROOT の下のキーにキーを書き込むと、システムはその情報を HKEY_LOCAL_MACHINE\Software\Classes に保存します。HKEY_CLASSES_ROOT の下のキーに値を書き込み、そのキーが既に HKEY_CURRENT_USER\Software\Classes の下に存在する場合、システムはその情報を HKEY_LOCAL_MACHINE\Software\Classes の下ではなくそこに保存します。
ソース:https://docs.microsoft.com/en-us/windows/win32/sysinfo/hkey-classes-root-key