Drop on Script

スクリプトファイルのアイコンにドラッグ&ドロップ。フリーソフト。

ソフトの説明

Drop on Scriptは、Perl, Python, Tcl/Tk, Rubyなどのスクリプト言語で作成したスクリプトファイルのアイコンに他のファイルをドラッグ&ドロップできるようにするためのシェル拡張プログラムです。

Drop on Scriptの実行例

画面イメージでは、Tclスクリプトファイル(native2ascii.tcl)にJavaのプログラムソースをドラッグ&ドロップしているところです。通常のエクスプローラでは、tclファイルにドラッグ&ドロップしても何も反応しませんが、Drop on Scriptをインストールすると、このようにドラッグ&ドロップして引数(argv)に渡すことができるようになります。

pack [text .t -width 80 -height 20 \
    -yscrollcommand {.sy set}] -side left -expand yes -fill both
pack [scrollbar .sy -orient vertical \
    -command {.t yview}] -side right -expand yes -fill y
foreach filename $argv {
    file rename -force -- $filename $filename.bak
    .t insert end $filename...
    update
    set fi [open $filename.bak]
    set fo [open $filename w]
    while {[gets $fi line] >= 0} {
        set oline ""
        for {set i 0} {[set c [string index $line $i]] != ""} {incr i} {
            if {$c < "\x80"} {
                append oline $c
            } {
                append oline \\u[format %04x [scan $c %c]]
            }
        }
        puts $fo $oline
    }
    close $fi
    close $fo
    .t insert end 終了\n
    .t see end
}
tk_messageBox -message 終了しました。
exit


Drop on Scriptの実行例

また、アイコンだけでなく、エクスプローラの「送る」メニューにスクリプトを登録して使うこともできます。画面イメージでは、native2ascii.tclの上でコンテキストメニューを表示し、「送る」メニューに登録されているPythonスクリプト(パス名をコピー)を実行しようとしているところです。Drop on Script無しでは「送る」メニューにスクリプトを登録しても選択したファイル名を渡すことができませんが、Drop on Scriptを有効にすると「送る」メニューにスクリプトを登録して使うことができるようになります。

# Shiftキーを押していたらファイル名だけをコピーします。
# Ctrlキーを押していたらネットワーク共有名に変換してコピーします。
# Shift, Ctrlを押していないときは、ファイルのフルパス名をそのままコピーします。
import sys, os, os.path, win32clipboard, win32wnet
win32clipboard.OpenClipboard( 0 )
win32clipboard.EmptyClipboard()
if 'DROP_WITH_SHIFT_KEY' in os.environ:
    for i in range(1, len( sys.argv )):
        sys.argv[i] = os.path.basename(sys.argv[i])
elif 'DROP_WITH_CONTROL_KEY' in os.environ:
    for i in range(1, len(sys.argv)):
        try:
            sys.argv[i] = win32wnet.WNetGetUniversalName(sys.argv[i], 1)
        except:
            continue
win32clipboard.SetClipboardText("\n".join(sys.argv[1:]))
win32clipboard.CloseClipboard()

標準では、JScript(*.js)、VBScript(*.vbs)、Perl(*.pl)、Tcl/Tk(*.tcl)、Python(*.py)、Ruby(*.rb)の拡張子に対してDrop on Scriptを有効にすることができますが、その他のスクリプト言語についても、拡張子のリストに追加すればDrop on Scriptを有効にすることができます。

UWSC:ドラッグ&ドロップ
いりやっくさんによる、 UWSCでDrop on Scriptを使うための解説記事です。

Drop on Scriptは、Windows2000/XPの上で動作するフリーソフトウェアです。 免責事項など、ヘルプの記事をよく読んでご利用ください。

ダウンロード

ダウンロード
Drop on Script
Ver. 0.3.1

DROT031.EXE (142 KB)

  • Drop on Scriptは Windows2000/XP 用です。

改版履歴

May 05, 2004: Ver. 0.3.1
  • Ctrl・Alt・Shiftキーの押下状態を環境変数(DROP_WITH_xxx)に格納する機能を追加
  • アンインストール時に再起動が必要な場合、再起動メッセージを表示するように修正
  • チュートリアルとしてPerl、Python、Tcl/Tkのサンプルスクリプトを追加
Apr 13, 2004: Ver. 0.3.0
  • 全てのEXE・DLLをUnicodeに対応
  • 「送る」メニューにスクリプトを追加する機能を追加
  • 環境設定画面を完全に刷新
  • 右ドラッグ&ドロップ時にコンテキストメニューを表示する機能を追加
  • インストーラをNSISに変更
Feb 04, 2002: Ver. 0.2.0
  • 右ドラッグ&ドロップしてヘルパーアプリケーションを起動する機能を追加
  • ちゃんとした?ヘルプを追加
  • Windows XPのルック&フィールに対応
Jul 03, 2001: Ver. 0.1.2
  • ファイルタイプのアクション「open」に指定されるコマンドラインにアプリケーションファイル名しか指定されていない場合(i.e. "%1"が省略されている場合)、スクリプトを正常に起動できなかった問題を修正
  • Readmeに、レジストリに関する説明を追加
  • Readmeに、スクリプトを「送る」メニューに入れて使用できる説明を追加
  • Rubyの「動作未確認」という記事を削除
  • サンプルとして、native2ascii.tclを同梱
Jun 15, 2001: Ver. 0.1.1
  • スクリプトの起動時のカレントディレクトリをスクリプトファイルの格納ディレクトリに変更するように修正
  • 多数のファイルがドロップされて正常に起動出来なかった場合、エラーメッセージを表示するように修正
  • スクリプトファイルのファイルタイプのアクションに「open」が無い場合、エラーメッセージを表示するように修正
Jun 01, 2001: Ver. 0.1.0
  • 最初の一般公開品
  • 以下のスクリプト言語の拡張子に対応
    • Tcl/Tk (*.tcl)
    • Perl (*.pl)
    • Python (*.py)
    • Ruby (*.rb) ← 動作未確認

Copyright © 2007 Koichi Yamamoto