ファイルに対する処理を行うスクリプトを作成した場合など、スクリプトファイルに処理対象のファイルをドラッグ&ドロップして実行できると便利なことがあります。
exeファイルは最初からドラッグ&ドロップで実行できるようになっていますが、Rubyなどのスクリプトはそうなっていません。
ここではレジストリを修正することにより、ドラッグ&ドロップでスクリプトファイルを実行できるようにする方法を説明します。
設定方法
ProgIDを調べる
Windows では拡張子ごとに ProgID が設定されており、さらに ProgID ごとに実行するプログラムが登録されています。
拡張子 → ProgID → 実行プログラム
例えばRubyファイルの場合
.rb → RubyFile → "C:\Ruby192\bin\ruby.exe"また、ドラッグ&ドロップの設定も ProgID ごとにできるようになっているため、まずは ProgID を調べます。
[スタート] ボタンをクリックし、[検索の開始] ボックス に regedit と入力してレジストリエディタを起動し、以下の場所へ移動
[HKEY_CLASSES_ROOT\ProgIDを調べたい拡張子]
例えばRubyファイルの場合
[HKEY_CLASSES_ROOT\.rb]
RubyFile と書いてあるところが ProgID です。ドラッグ&ドロップできるように設定
レジストリエディタで次の場所へ移動
[HKEY_CLASSES_ROOT\RubyFile\ShellEx\DropHandler]
↑RubyFile の部分は上で調べた ProgID に置き換えてください。右側で、(既定)に以下の値をセット
以上でドラッグ&ドロップで実行できるようになります。ドラッグ&ドロップしたファイルは起動パラメータとしてスクリプトファイルに渡されます。
※注意点
既定に {86C86720-42A0-1069-A2E8-08002B30309D} を指定することでもドラッグ&ドロップできるようになります。 しかしこの場合スクリプトに起動パラメータとして渡されるファイルのパスが省略されてしまうことがあります。
バッチ
環境によってはこのバッチでは正しく設定できないかもしれません。その場合は上記の手順に従って設定してください。
Ruby用: DragAndDrop_Ruby.reg