右クリックメニューで右クリックターゲットをコンテキスト依存アプリケーションに渡す

右クリックメニューで右クリックターゲットをコンテキスト依存アプリケーションに渡す

Windows 7 で、コンテキストに応じて特定のファイル/フォルダーの名前をシェル スクリプトに渡すことができる右クリック コンテキスト メニュー オプションを作成したいと考えています。

これは可能であるはずだとわかっています。たとえば、7zip ファイルがある場合、それを右クリックして「ここで抽出」と入力すると、何らかの方法でターゲット (.7z アーカイブ) が 7zip プログラムに渡されます。

具体的には、.c ファイルを取得してそれを LaTeX リスト内に詰め込み、pdflatex を実行して読みやすいようにフォーマットされたファイルを作成するスクリプトがあります。ただし、ファイルをコマンド ライン引数として指定する必要があります。やりたいことは、ファイルを右クリックしてこのスクリプトを自動的に実行し、右クリック ターゲットのパスをコマンド ライン引数に自動的に渡すことです。

答え1

SuperUserへようこそ!

これを実行するにはレジストリの編集が必要であり、この項目をすべてのファイルに追加するか、特定の拡張子のファイルのみに追加するか、フォルダーに追加するか、またはその両方に追加するかによって異なります。

レジストリ エディターを開き、 に移動しますHKEY_CLASSES_ROOT。ここには一連のファイル拡張子が表示されます。これがコンテキスト メニューを制御するものです。

ハンドラーの追加は、そのメニュー項目を何に関連付けるかに関係なく同じプロセスであり、レジストリ内のどこに配置するかが重要になります。

プロセスは次のとおりです。

  1. shell追加するキーの下に新しいキーを作成します。
  2. このメニュー項目にアイコンを付けたい場合は、Icon先ほど作成したキーに名前をつけた文字列を追加し、値としてアイコンへのパスを指定します。
  3. キーを追加あなたが作成したアイテムcommand
  4. このキーの下の (Default) エントリを変更して、開きたいスクリプトを指すようにし、"%1"プログラムに渡されるファイル名がコマンド ラインに配置される場所に を追加します。

この新しいメニュー項目はどこに配置すればよいでしょうか? 表示したい場合は...

  • 特定の拡張子を持つすべてのファイルについては、一致する拡張子キーの下に配置します (存在しない場合は作成できます)。
  • *すべてのファイルについては、キーの下に置く
  • すべてのディレクトリに対して、Directoryキーの下に配置します。

関連情報