# hxmlファイルにドラッグ・アンド・ドロップして実行できるようにする(Windows)

WindowsでPythonをインストールすると、pyファイルがあたかもexeであるかのようにドラッグ・アンド・ドロップを受け付けてくれます。 同じように他のスクリプトファイルも実行できるようにする方法をメモ。対象はもちろんHaxe。 ただし、hxファイルはhaxe.exeに渡しても実行してくれないので、hxmlファイルに設定します。 お手軽スクリプトとして使用できるようになるかもですね。

# 1.regedit起動

Win+R で「ファイル名を指定して実行」画面を表示。 regeditと入力し、OK。 管理者権限を求められた場合は「はい」を選択。

# 2. .hxmlの設定情報を探す

多分コンピューター\HKEY_CLASSES_ROOT\.hxmlにある。

# 3. DropHandler作成・設定

DropHandlerの作成・設定をし、ドラッグ・アンド・ドロップを有効化する。 みつけた「.hxml」配下の「shellex」フォルダを右クリックし、「新規」「キー」を選択する。名前を「DropHandler」にする。

コンピューター\HKEY_CLASSES_ROOT\hxml_auto_file\shellex\DropHandlerを選択する。 右のペインの「(規定)」を右クリックし、「修正」を選択する。 「文字列の編集」ウィンドウの「値のデータ」に、 {BEA218D2-6950-497B-9434-61683EC065FE}を設定する。

# 4. Openコマンド修正

Openコマンドを修正して、ドラッグ・アンド・ドロップしたファイルを引数として受け取れるようにする。 コンピューター\HKEY_CLASSES_ROOT\hxml_auto_file\shell\open\command内の「(規定)」を編集する。 "C:\HaxeToolkit\haxe\haxe.exe" -prompt "%1"と入力されているので、"C:\HaxeToolkit\haxe\haxe.exe" -prompt "%1" %*に変更する。

# 5. 再起動

再起動する。サインアウト→サインインでもいいかも。

# お試し実行

src/main.hx

class Main {
    static function main() {
        trace(Sys.args());
        Sys.sleep(5.0);
    }
}
1
2
3
4
5
6

test.hxml

-cp src
-D analyzer-optimize
--run Main
1
2
3

--runの代わりに-interpを使ったら、hxmlファイルに書かれた全オプションが引数としてみなされたのでうまくない。

"README.md"をドラッグアンドドロップして実行する。 以下が出力。

src/Main.hx:4: [C:\(秘密)\README.md]
1