HOME > Windows > Windows XP > エクスプローラ > 拡張子の関連付け

拡張子の関連付け



HKEY_CLASSES_ROOTの下に拡張子のキーがあります。
しかし多くの場合は拡張子のキーの下では関連付けしません。

例えばテキストファイルの拡張子は.txtです。
これからは拡張子の.txtで説明します。
HKEY_CLASSES_ROOT\.txtキーの既定の値はtxtfileです。拡張子の(既定)のデータをファイルタイプ(ProgId)といいます。
「フォルダ オプション」の「ファイルの種類」タブではファイルタイプのキーの下で行います。
このように拡張子のキーの既定の値が指定されていたら、ファイルタイプによるキーの「HKEY_CLASSES_ROOT\txtfile」も参照します。

拡張子に関連付けのメニューの表示
 HKEY_CLASSES_ROOT\txtfile\shellキーの下にアクション名のキーを作成し、commandキーを作成し、既定の値にコマンドを指定します。
  キー:HKEY_CLASSES_ROOT\txtfile\shell\≪アクション名≫\command
     アクセスキーを指定するには≪アクション名≫のキーの半角の英数字の前に半角のアンパーサンド(&)をつけます。(OSによってはできませんので下記の既定の値に設定してください)
     メニューのキャプションは≪アクション名≫のキーの既定の値に入力しても良いです。
  名前:(既定)
  種類:文字列値 (REG_SZ)
  データ:コマンド 半角の"%1"はエクスプローラで右クリックしたファイル名を意味します。
      ファイル名にスペースを含む場合は二重引用符(")で囲みます。"%1"の前はスペースが必要です。
    例. インターネット エクスプローラで開きます。右クリックしたときのメニューのアクセスキーは I にしました。
       キー:HKEY_CLASSES_ROOT\txtfile\shell\IExplore(&I)\command
       データ:IExplore.EXE    "%1"

既定の拡張子の関連付け
 既定の拡張子の関連付けの多くのアクション名はOpenですが、他の名前でもかまいません。
  キー:HKEY_CLASSES_ROOT\txtfile\shell
  名前:(既定)
  種類:文字列値 (REG_SZ)
  データ:アクション名
      上記の例のアクション名のキーの「IExplore(&I)」にすると既定になり、拡張子が.txtのファイルをダブルクリックするとインターネット エクスプローラで開きます。
      メニューに表示される順番は最初は太字で既定、次はshellの下のキーの文字コード順になります。
      順番を変更するにはshellの(既定)のデータに、各キー名を半角のカンマ(,)で区切ります。
      例.Open,Print,Edit これはOpenが既定で最初に、次にPrint、最後にEditの順番で表示されます。

アイコン
  キー:HKEY_CLASSES_ROOT\txtfile\DefaultIcon
  名前:(既定)
  種類:文字列値 (REG_SZ)
  データ:アイコンのファイル名。EXEやDLLなど複数のアイコンを保持している場合は、半角のカンマ(,)の後に0から始まる数字を指定します。
       (マイナスの数値の場合は、数値の絶対値がアイコンのリソースIDを表します)
      例.C:\Windows\system32\shell32.dll,13 これはshell32.dllの中に含まれている14番目のアイコンです。(13番目ではない)

複数の拡張子を1つのファイルタイプで設定できます。
例えば拡張子の.htm.htmlのファイルタイプはhtmlfileです。
ファイルタイプによるキーはHKEY_CLASSES_ROOT\htmlfileになります。
htmlfileキーの下を変更すると、拡張子の.htm.htmlの両方に反映します。(他のキーを参照してる場合があります)

PerceivedTypeの値がある場合はHKEY_CLASSES_ROOT\SystemFileAssociationsキーの下を参照します。(拡張子「.jpeg」など)
 例.拡張子の「.jpg」はPerceivedTypeの値が「image」なので、HKEY_CLASSES_ROOT\SystemFileAssociations\imageキーを参照します。

CurVerのキーがある場合はHKEY_CLASSES_ROOT\≪CurVerの(既定)のデータ≫キーの下を参照します。

OpenWithProgidsキーがある場合も他を参照しているかもしれません。
 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\≪拡張子≫\UserChoice
 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\≪拡張子≫\UserChoice
 UserChoiceキーの「ProgId」値を参照します。


ファイルの拡張子に関連付け 実践編

 Windows Vistaで説明します。
 Windows 7からはPositionSubcommandsなどの新機能があります。詳細は下記のマイクロソフトのサイトを参考にしてください。
  Creating Shortcut Menu Handlers

 初心者のために詳しい説明はしません。
 拡張子によってはこの方法ではできません。(キーの場所が異なります)
 レジストリエディタの「表示」の「最新の情報に更新」メニューを実行しても更新されない場合もあります。
 その場合は次回にログオンした場合に有効になります。
 順番に読んでください。
  1. 「ファイルを開くプログラムの選択」で関連付ける
  2. メニューのタイトルを変更する
  3. ファイルをダブルクリックした時に実行する既定のメニュー
  4. メニューに表示される順番を変更する
  5. 実行するコマンドを変更する
  6. アイコンを変更する
  7. プロパティに表示されるファイルの種類の説明を変更する
  8. 拡張子を常に表示する
  9. 拡張子を常に表示しない
  10. Shiftキーを押しながら右クリックした場合のみメニューを表示する
  11. 新規作成メニューに追加する
  12. HKEY_CLASSES_ROOTキーとは
  13. (既定)を展開可能な文字列値に変更する
「ファイルを開くプログラムの選択」で関連付ける

 1.デスクトップの何もない所を右クリックして、「新規作成」の「テキスト ドキュメント」メニューを実行します。

 2.開けないファイルの拡張子に変更します。ここではファイル名を「Test.74」にします。(確認のメッセージは「はい」)
   すると白い紙のアイコンに変更されます。
   拡張子が表示されない場合は、フォルダ オプションの「表示」タブの「詳細設定」の「登録されている拡張子は表示しない」ボタンのチェックを外してください。

 3.このファイルをマウスでダブルクリックして実行します。

 4.「ファイルを開くプログラムの選択」の「この種類のファイルを開くときは、選択したプログラムをいつも使う」ボタンにチェックを入れます。
   * 注 「ファイルを開くプログラムの選択」が表示されない場合は、拡張子に関連付けられていないファイルをメモ帳などで開く設定にしている思われます。

 5.メモ帳(Notepad.exe)を選択して、「OK」ボタンを実行します。
   このファイルがメモ帳で開きます。
   閉じた後に見るとアイコンは、白い紙の中のメモ帳に変更されます。
   またこのファイル「Test.74」を右クリックすると、「開く(O)」と「編集(E)」メニューが表示されます。

 6.レジストリエディタ(RegEdit.exe)を実行して、確認しましょう。

  HKEY_CLASSES_ROOT
    .74 (既定) = 74_auto_file

  拡張子のキーの(既定)のエントリのデータの名前を、ファイルタイプといいます。
  自動で作成されたファイルタイプは拡張子のドット(.)を削除し、後ろに「_auto_file」が付いた名前になります。
  このキーの下でファイルを開くための設定もできますが、ファイルタイプのキーの下で定義するのが作法です。
  ソフトによってはインストールした時に新規作成したファイルタイプに変更し、アンインストール時に元のファイルタイプに戻します。
  複数の拡張子で同じファイルタイプを参照することもできます。(拡張子の.htm.htmlはファイルタイプがhtmlfileなど)

 7.HKEY_CLASSES_ROOT\74_auto_fileキーを探します。

  HKEY_CLASSES_ROOT
    74_auto_file (既定) = 
       Shell (既定) = 
          edit (既定) = 
             command (既定) = %SystemRoot%\system32\NOTEPAD.EXE %1
          open (既定) = 
             command (既定) = %SystemRoot%\system32\NOTEPAD.EXE %1

  openキーは「開く(O)」メニュー、editキーは「編集(E)」メニューです。
  openeditキーをアクション(動詞)といいます。
  なぜメニュー名が「開く(O)」や「編集(E)」になるかというと、openeditキーは標準動詞なのでその国の言語で置き換えられます。
  また拡張子に関連付けられた既定のアクションを指定しないので、openが太字に表示され実行されます。



メニューのタイトルを変更する

 1.openキーの(既定)のエントリのデータを「メモ帳で開く(&O)」に変更してください。
   半角の英数字の前に半角のアンパーサンド(&)を指定すると、アクセスキーになります。

  open (既定) = メモ帳で開く(&O)

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   このファイル「Test.74」を右クリックすると、太字の「メモ帳で開く(O)」と「編集(E)」メニューが表示されます。
   ここで「O」キーを押すと「メモ帳で開く(O)」メニューが実行されます。

 ■ メニューのタイトルはアクションのキーの(既定)のエントリのデータに指定します。
    アクセスキーは半角の英数字の前に半角のアンパーサンド(&)を指定します。



ファイルをダブルクリックした時に実行する既定のメニュー

 1.「open」キーの名前を「openAction」キーに変更してください。

  HKEY_CLASSES_ROOT\74_auto_file\shell\openAction

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   このファイル「Test.74」を右クリックすると、太字の「編集(E)」と「メモ帳で開く(O)」メニューが表示されます。
   「編集(E)」が太字になったのはeditが標準動詞だからではなく、文字のコード順で最初のアクションだからです。
   レジストリエディタはキーやエントリを文字のコード順に並べます。

 3.Shellキーの(既定)のエントリのデータを「openAction」に変更してください。

  HKEY_CLASSES_ROOT\74_auto_file\shell (既定) = openAction

 4.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   このファイル「Test.74」を右クリックすると、太字の「メモ帳で開く(O)」と「編集(E)」メニューが表示されます。

 ■ 既定のメニューはShellキーの(既定)のエントリのデータに、アクションのキー名を指定します。
    指定しない場合は、アクションのキー名が「Open」になります。「Open」キーがない場合は一番上のキーになります。




メニューに表示される順番を変更する

 1.Shellキーの下にprintprinttoキーを作成します。
   各その下にcommandキーを作成し(既定)のエントリに下記のように入力してください。

  HKEY_CLASSES_ROOT
    74_auto_file (既定) = 
       Shell (既定) = openAction
          edit (既定) = 
             command (既定) = %SystemRoot%\system32\NOTEPAD.EXE  %1
          openAction (既定) = メモ帳で開く(&O)
             command (既定) = %SystemRoot%\system32\NOTEPAD.EXE  %1
          print (既定) = 
             command (既定) = NOTEPAD.EXE /p  "%1"
          printto (既定) = 
             command (既定) = NOTEPAD.EXE /pt "%1" "%2" "%3" "%4"

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   このファイル「Test.74」を右クリックすると、太字の「メモ帳で開く(O)」と「編集(E)」と「印刷(P)」メニューが表示されます。
   printtoキーは標準動詞のプリンタへのドラッグ&ドロップのため、メニューには表示されません。
     %1は選択したファイル名です。
     %2はプリンタの名前です。
     %3はプリンタ ドライブの名前です。
     %4はプリンタ ポートです。
     *注 Windows 98から%3%4は不要と思われます。

 3.Shellキーの(既定)のエントリのデータを「edit,print,openAction」に変更してください。

  HKEY_CLASSES_ROOT\74_auto_file\shell (既定) = edit,print,openAction


 4.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   このファイル「Test.74」を右クリックすると、太字の「編集(E)」と「印刷(P)」と「メモ帳で開く(O)」メニューが表示されます。

 ■ メニューの順番はShellキーの(既定)のエントリのデータに、アクションのキー名を半角のカンマ(,)で区切り指定します。
    最初のアクション名は既定のアクションになります。
    指定しない場合は「open」があれば最初に、後はアクションのキー名の文字コード順に並びます。



実行するコマンドを変更する

 1.editキーの(既定)のエントリのデータを「ワードパッドで開く(&W)」にします。

 2.editcommandキーの(既定)のエントリのデータを「%ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE "%1"」にします。

  HKEY_CLASSES_ROOT
    74_auto_file (既定) = 
       Shell (既定) = edit,print,openAction
          edit (既定) = ワードパッドで開く(&W)
             command (既定) = %ProgramFiles%\Windows NT\Accessories\WORDPAD.EXE  "%1"

 3.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   このファイル「Test.74」を右クリックし、「ワードパッドで開く(W)」メニューを実行するとワードパッドで開きます。

 ■ 実行するコマンドはcommandキーの(既定)のエントリのデータに指定します。
   コマンドのパスが通っていない場合は、フルパス名で指定してください。
   エントリは展開可能な文字列値でないと、「%ProgramFiles%」などの環境変数は使えません。
   「"%1"」はコマンドを実行するときに選択したファイル名に置き換えられます。
 *注 「"%1"」を二重引用符で囲まないで「%1」にすると、ファイル名に半角の文字があると実行されないことがあります。



アイコンを変更する

 1.HKEY_CLASSES_ROOT\74_auto_fileキーの下にDefaultIconキーを作成します。
   (既定)のエントリにC:\Windows\system32\imageres.dll,96を入力してください。(C:\Windowsは環境により異なります)

  HKEY_CLASSES_ROOT
    74_auto_file (既定) = 
       DefaultIcon (既定) = C:\Windows\system32\imageres.dll,96

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   次回にログオンした場合にアイコンが変更されます。

 ■ アイコンはDefaultIconキーの(既定)のエントリのデータにアイコンのファイル名を指定します。
    EXEやDLLなど複数のアイコンを保持している場合は、半角のカンマ(,)の後に0から始まる数字を指定します。
    マイナスの数値の場合は、数値の絶対値がアイコンのリソースIDを表します。
     例.C:\Windows\system32\shell32.dll,13 これはshell32.dllの中に含まれている14番目のアイコンです。(13番目ではない)



プロパティに表示されるファイルの種類の説明を変更する

 このファイル「Test.74」を右クリックし、「プロパティ」メニューを実行すると、「全般」タブの「ファイルの種類」に「74 ファイル (.74)」と表示されます。

 1.HKEY_CLASSES_ROOT\74_auto_fileキーの(既定)のエントリにテストのテキストファイルを入力してください。

  HKEY_CLASSES_ROOT
    74_auto_file (既定) = テストのテキストファイル

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   次回にログオンした場合に有効になります。
   このファイル「Test.74」を右クリックし、「プロパティ」メニューを実行すると、「全般」タブの「ファイルの種類」に「テストのテキストファイル (.74)」と表示されます。


 ■ ファイルの種類の説明はHKEY_CLASSES_ROOT\≪ファイルタイプ≫キーの(既定)のエントリに記述します。



拡張子を常に表示する

  「フォルダ オプション」の「表示」タブの「詳細設定」の「登録されている拡張子は表示しない」がチェックされてても、拡張子を表示します。

 1.HKEY_CLASSES_ROOT\74_auto_fileキーの中に、文字列値の種類のエントリを作成してください。
   エントリの名前はAlwaysShowExtにし、データは何も入力しません。

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   次回にログオンした場合に有効になります。

 ■ 拡張子を常に表示するにはHKEY_CLASSES_ROOT\≪ファイルタイプ≫キーの中に文字列値のAlwaysShowExtのエントリを作成します。
    AlwaysShowExtは次のNeverShowExtも指定すると無視されます。



拡張子を常に表示しない

  「フォルダ オプション」の「表示」タブの「詳細設定」の「登録されている拡張子は表示しない」がチェックなしでも、拡張子を表示しません。

 1.HKEY_CLASSES_ROOT\74_auto_fileキーの中に、文字列値の種類のエントリを作成してください。
   エントリの名前はNeverShowExtにし、データは何も入力しません。

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   次回にログオンした場合に有効になります。

 ■ 拡張子を常に表示しないはHKEY_CLASSES_ROOT\≪ファイルタイプ≫キーの中に文字列値のNeverShowExtのエントリを作成します。



Shiftキーを押しながら右クリックした場合のみメニューを表示する

 1.HKEY_CLASSES_ROOT\74_auto_file\shell\printキーの中に、文字列値の種類のエントリを作成してください。
   エントリの名前はExtendedにし、データは何も入力しません。

 2.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   ファイル「Test.74」をShiftキーを押しながら右クリックした場合のみ、「印刷(P)」メニューが表示されます。

 ■ Shiftキーを押しながら右クリックした場合のみメニューを表示するには、≪アクション≫キーの中に文字列値のExtendedのエントリを作成します。



新規作成メニューに追加する

新規作成は空のファイル、テンプレートファイルをコピーする、コマンドを実行する、レジストリのデータから作成のどれか1つです。

まず空のファイルから新規作成する方法を説明します。

 1.HKEY_CLASSES_ROOT\.74の下にShellNewキーを作成します。

 2.エントリの種類は文字列値で作成し、名前はNullFileにします。(データは何も入力しません)

 3.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   デスクトップの何もない場所をクリックすると、「新規作成」の「テストのテキストファイル」メニューが表示されます。
   実行すると中身が空の「新規 テストのテキストファイル」ファイルが作成されます。


次はテンプレートファイルをコピーして新規作成する方法を説明します。

 1.テンプレートファイルの名前を「テストのテキストファイル.74」にし中身を入力して、「%SystemRoot%\ShellNew」フォルダに保存してください。(C:\Windows\ShellNew
   (管理者のアクセスが必要です)

 2.先ほど作成したエントリ「NullFile」を削除してください。

 3.エントリの種類は展開可能な文字列値で作成し、名前はFileNameにし、データを「%SystemRoot%\ShellNew\テストのテキストファイル.74」にしてください。

 4.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   テンプレートファイルの内容で新規作成されることを確認してください。
   コピーされない場合はファイル名が正しいか確認してください。


コマンドを実行して新規作成は説明しません。
 
 エントリの種類は文字列値で作成し、名前はCommandにし、データに実行するコマンドを入力します。
 例えば拡張子が「.jnt」の「Journal ドキュメント」の文字列値のCommandは「"%ProgramFiles%\Windows Journal\Journal.exe" /n 0」です。


次はレジストリのデータから作成して新規作成する方法を説明します。

 1.先ほど作成したエントリ「FileName」を削除してください。

 2.エントリの種類は文字列値で作成し、名前はDataにし、データを半角の大文字で「.LOG」にしてください。
   (バイナリ値だと16進数で入力しなければいけないので、分かりやすく文字列値を使いました)

 3.レジストリエディタの「表示」の「最新の情報に更新」メニューを実行します。
   次回にログオンした場合に有効になります。
   右クリックして「ワードパッド」ではなく、「メモ帳」で開くとファイルの中身が「.LOG」で新規作成されることを確認してください。
   メモ帳はファイルの先頭行が半角の大文字の「.LOG」の場合は、開くと自動で日付と時間を挿入します。


 ■ 新規作成
   キー:HKEY_CLASSES_ROOT\≪ファイルの拡張子≫\ShellNew
   名前:NullFileFileNameCommandDataの中から1つを選択し、選択した名前により種類が決まります。
       NullFile・・・種類:文字列値 (REG_SZ)  データ:何も入力しません。
       FileName・・・種類:展開可能な文字列値 (REG_EXPAND_SZ)  データ:コピーする元のファイル名を指定します。多くは「%SystemRoot%\ShellNew」などに保存します。
       Command・・・種類:文字列値 (REG_SZ)  データ:実行するコマンドを入力します。
       Data・・・種類:バイナリ値など (REG_BINARY)  データ:ここで入力したバイナリデータの内容のファイルを作成します。(例では文字列値で説明)

   *参 新規作成メニューから既に存在しているメニューを削除するには、ファイルの拡張子のShellNewキーの名前を変更します。
        例. 先頭にセミコロン(;)を付けて「;ShellNew」にします。



HKEY_CLASSES_ROOTキーとは

 HKEY_CLASSES_ROOTキー以下は、参照した合成キーです。
 HKEY_CURRENT_USER\Software\Classesキー以下に存在しない場合は、HKEY_LOCAL_MACHINE\Software\Classesキー以下を読み書きします。
 両方のキーに存在する場合はHKEY_CURRENT_USER\Software\Classesキー以下を読み書きします。

 HKEY_CURRENT_USER\Software\Classes・・・ログインした現在のユーザ
 HKEY_LOCAL_MACHINE\Software\Classes・・・すべてのユーザ

 「ファイルを開くプログラムの選択」はHKEY_CURRENT_USER\Software\Classesキーに作成しました。
 ログインしたユーザのみに関連付け、他のユーザにはしてません。(OSにより異なります)
 DefaultIconshell\printshell\printtoキーは、HKEY_LOCAL_MACHINE\SOFTWARE\Classes\74_auto_fileキーの下に作成されました。(OSにより異なります)

 ■ キーや値を作成する場合は、HKEY_CLASSES_ROOTキーではなく、明示的にログオンした現在のユーザのみはHKEY_CURRENT_USER\Software\Classesキー、すべてのユーザはHKEY_LOCAL_MACHINE\Software\Classesキーの下に作成してください。



(既定)を展開可能な文字列値に変更する

 この項はWindows 8で動作確認しました。
 レジストリエディタでキーを作成すると、(既定)は文字列値になります。
 展開可能な文字列値でないと、「%ProgramFiles%」などの環境変数は使えません。
 レジストリファイルにエクスポートし、展開可能な文字列値に変更後、インポートします。

 1.「編集」の「新規」の「展開可能な文字列値」メニューを実行し、名前とデータを入力します。
「展開可能な文字列値」メニュー

 ここでは名前を「Dumy」としました。
文字列値の(既定)

 2.「Command」キーを右クリックして「エクスポート」メニューを実行し、ファイルに保存します。

 3.保存したファイルを右クリックし「編集」メニューを実行します。

 変更前のファイル
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\PBrush\shell\Mypaint\Command]
@="\"%systemroot%\\system32\\mspaint.exe\" \"%1\""
"Dumy"=hex(2):22,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,\
  00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
  6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,\
  00,22,00,25,00,31,00,22,00,00,00

 変更後のファイル
 「@」のある行を削除します。
 「"Dumy"」を「@」に変更します。
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\PBrush\shell\Mypaint\Command]
@=hex(2):22,00,25,00,73,00,79,00,73,00,74,00,65,00,6d,00,72,00,6f,00,6f,\
  00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,\
  6d,00,73,00,70,00,61,00,69,00,6e,00,74,00,2e,00,65,00,78,00,65,00,22,00,20,\
  00,22,00,25,00,31,00,22,00,00,00

 4.変更し保存したレジストリのファイルをダブルクリックして実行します。確認のメッセージが表示されるので「はい」をクリックします。
展開可能な文字列値の(既定)
 (既定)が「展開可能な文字列値」になりました。不要な「Dumy」を削除してください。

  多くの環境ではシステムディレクトリにパスは通っているので「mspaint.exe」で実行できます。
   「%systemroot%\\system32\\mspaint.exe」とする必要はありません。あくまでサンプルです。



Windows 7以降から階層メニューを表示できます。(Windows 10で確認)
階層メニューはSubCommandsか、あるいはExtendedSubCommandsKeyエントリを使用します。
【外部リンク】マイクロソフトのサイトの「Creating Shortcut Menu Handlers」を参考しました。

  キー:HKEY_CLASSES_ROOT\≪ファイルタイプ≫\Shell\≪アクション名≫

  名前:SubCommands
  種類:文字列値 (REG_SZ)
  データ:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shellキーの下のキー名です。
      キーが複数の場合は半角のセミコロン(;)で区切ります。

  名前:ExtendedSubCommandsKey
  種類:文字列値 (REG_SZ)
  データ:階層メニューとして参照するHKEY_CLASSES_ROOTの子のキー名から(≪ファイルタイプ≫)指定します。

  名前:MUIVerb
  種類:文字列値 (REG_SZ)
  データ:メニューのキャプションです。アクセスキーは半角の&と英数字です。

  名前:Icon
  種類:文字列値 (REG_SZ)
  データ:アイコンのファイル名かリソースを指定します。

  名前:Position
  種類:文字列値 (REG_SZ)
  データ:メニューの表示位置を指定します。上の方はTopに、中央付近はMiddle、下の方はBottomにします。(位置は正確ではありません)

SubCommandsを使用したサンプルです。
エクスプローラでファイルを右クリックのメニューに「選択」を追加しました。
エクスプローラでファイルのコンテキスト メニュー

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Select]
"MUIVerb"="選択(&S)"
"SubCommands"="Windows.selectall;Windows.selectnone;Windows.invertselection"
"Icon"="imageres.dll,-5308"

ExtendedSubCommandsKeyを使用したサンプルです。
デスクトップやエクスプローラの何もない所のコンテキスト メニューに「私のメニュー」を追加しました。
デスクトップのコンテキスト メニュー

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\MyMenu\shell]

[HKEY_CLASSES_ROOT\Directory\Background\shell\MyMenu\shell\Control]
"MUIVerb"="コントロール パネルを開く(&C)"
"Position"="Top"
"Icon"="Control.exe,0"

[HKEY_CLASSES_ROOT\Directory\Background\shell\MyMenu\shell\Control\command]
@="Control.exe"

[HKEY_CLASSES_ROOT\Directory\Background\shell\MyMenu\shell\DevMgmt]
"MUIVerb"="デバイス マネージャーを起動(&D)"
"Position"="Middle"
"Icon"="mmcndmgr.dll,26"

[HKEY_CLASSES_ROOT\Directory\Background\shell\MyMenu\shell\DevMgmt\command]
@="mmc.exe DevMgmt.msc"

[HKEY_CLASSES_ROOT\Directory\Background\shell\MyMenu\shell\RegEdit]
"MUIVerb"="レジストリ エディタを起動(&R)"
"Position"="Bottom"
"Icon"="RegEdit.exe,0"

[HKEY_CLASSES_ROOT\Directory\Background\shell\MyMenu\shell\RegEdit\command]
@="RegEdit.exe"



前のページ

次のページ


このページの上