
Windows 7 で、コンテキストに応じて特定のファイル/フォルダーの名前をシェル スクリプトに渡すことができる右クリック コンテキスト メニュー オプションを作成したいと考えています。
これは可能であるはずだとわかっています。たとえば、7zip ファイルがある場合、それを右クリックして「ここで抽出」と入力すると、何らかの方法でターゲット (.7z アーカイブ) が 7zip プログラムに渡されます。
具体的には、.c ファイルを取得してそれを LaTeX リスト内に詰め込み、pdflatex を実行して読みやすいようにフォーマットされたファイルを作成するスクリプトがあります。ただし、ファイルをコマンド ライン引数として指定する必要があります。やりたいことは、ファイルを右クリックしてこのスクリプトを自動的に実行し、右クリック ターゲットのパスをコマンド ライン引数に自動的に渡すことです。
答え1
SuperUserへようこそ!
これを実行するにはレジストリの編集が必要であり、この項目をすべてのファイルに追加するか、特定の拡張子のファイルのみに追加するか、フォルダーに追加するか、またはその両方に追加するかによって異なります。
レジストリ エディターを開き、 に移動しますHKEY_CLASSES_ROOT
。ここには一連のファイル拡張子が表示されます。これがコンテキスト メニューを制御するものです。
ハンドラーの追加は、そのメニュー項目を何に関連付けるかに関係なく同じプロセスであり、レジストリ内のどこに配置するかが重要になります。
プロセスは次のとおりです。
shell
追加するキーの下に新しいキーを作成します。- このメニュー項目にアイコンを付けたい場合は、
Icon
先ほど作成したキーに名前をつけた文字列を追加し、値としてアイコンへのパスを指定します。 - キーを追加下あなたが作成したアイテム
command
- このキーの下の (Default) エントリを変更して、開きたいスクリプトを指すようにし、
"%1"
プログラムに渡されるファイル名がコマンド ラインに配置される場所に を追加します。
この新しいメニュー項目はどこに配置すればよいでしょうか? 表示したい場合は...
- 特定の拡張子を持つすべてのファイルについては、一致する拡張子キーの下に配置します (存在しない場合は作成できます)。
*
すべてのファイルについては、キーの下に置く- すべてのディレクトリに対して、
Directory
キーの下に配置します。