2011-08-10 16 views
5

コンテキストメニューの項目の順序を変更するにはどうすればいいですか(たとえば、ディレクトリの場合)Windowsはその表示時にどのように順序を決定して制御できるかを知る必要があります。たとえば、コンテキストメニューリストの最後にカスタムアクションを配置したい場合Windowsエクスプローラのコンテキストメニューで注文する

ありがとうございます!

+0

@Christoph Grimmer-Dietrichとは何ですか?あなたはGoogleで答えを見つけましたか?さて、私にリンクをください。 – ixSci

+0

このおかげで申し訳ありません。私は2番目のリンク(http://windowsxp.mvps.org/context_folders.htm)があなたを助けてくれます。 –

答えて

7

私のGoogleの-FUはthisに私を導いた:

ので、ソートが決定順に次の要素に基づいています。

  1. キーの優先度(例えば、txtfile、*、AFSO)
  2. レジストリshellex \ contextmenuhandlersの列挙順序静的動詞が常に最初になる特別な場合
  3. IContextMenu実装順序

位置に関する競合がある場合、拡張機能がメニュー内の相対位置を保証する一貫した方法はありません。

フェーズ1については何もできません。フェーズ3は、ハンドラに実装されている動詞にのみ適用されます。それはフェーズ2になります。あなたが行うことができる唯一のことは、最初に列挙されるようにContextMenuHandlersの下にエントリの名前を付けることです。

1

This Q&Aは、コンテキストメニュー内のアイテムを簡単に作成(移動しない)する方法を示しています。私は既存のアイテムを複製することができました。次に、コンテキストメニュー内で、「aMyItem」または「0MyItem」で始まるようにキーの名前を変更して、アイテムをよりアクセスしやすくしてよりアクセスしやすくしました。これは私のためにそれをやった

2

これは、Windows 7の新しいバージョンの多分同じである設定。それは他の答えに触発され、すべてが注文に影響しています。

「*」(すべてのファイル)のエントリについて説明していますが、特殊な拡張子についても同じことが言えます。

私はレジストリで行われた変更について一切責任を負いません!位置がanswer by @Lukeのルールによって決定され、これらのセクション内

2 - Default menu position (at the top). 
1 - Send to, copy to folder and move to folder menu part (in the middle). 
0 - Rename menu part (at the bottom). 

:それはHow to Change the Order of Options in Context Menu

answer by @Anonymouseから)彼らはそれらを呼び出すに言うよう

は、コンテキストメニューの三つのセクションがあります
「セクション」内の順序を変更する最も簡単な方法は、HKCR-*-shellまたはHKCR-*-shellexのレジストリキーの名前を変更することです。サブキーshellのすべてがshellexの下にあります。キー名としてCLSIDを持つキーは、最後に使用された順序で最後のエントリになります。

例として、私はsample from MSDN to build a Context Menu Handlerに従っていました。これは、shellexのキーの名前としてCLSIDを使用し、デフォルト値として「フレンドリ名」を使用しています。それは "セクション" 2の最下部に置かれました。キー名をAsampleのように変更し、デフォルト値をCLSIDに変更しました。今度はshellのエントリの直後です。

注文を変更する方法がいくつかあります。

shellのキーの場合は、文字列データTopまたはBottomを使用して値Positionを追加できます。どの "セクション"で決定することはできません。

shellexのキーの場合、値Positionは無効です。代わりに、エントリがどのような "セクション"でflags,described in the linkを使用するかを決定することが可能です。

  1. 移動したいshellextためCLSIDを使用してください。それは
    {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}のようです。キー名またはデフォルト値のいずれかから取得します。これは、入力の仕方によって異なります。
  2. HKCR-CLSIDのエントリを検索すると、キーの名前はCLSIDになります。
  3. 名前flagsとデータDWORDの値を、前述の「セクション」番号が見つかったCLSIDに追加します。
関連する問題