2010/08/12

ウィンドウへのファイルドロップを生成するdropFiles()

NILScriptのWindowユニットには、他プロセスの所有するウィンドウ上の入力欄の内容を操作したり、ボタンを押したりして自動操作を行う機能も用意されていますが、世の中にはエクスプローラなどからのドラッグ&ドロップでしかファイルの指定を受け付けてくれないソフトがあったりします。
そこで、ウィンドウへのファイルドロップをエミュレートする「dropFiles()」というメソッドが用意されています。
以下は、その使用例です。

var w=require("Window").Window.find("Notepad");
if(w){
 w.dropFiles(Main.script).activate(true);
}else{
 run('notepad "'+Main.script+'"');
}

最初の行で、ウィンドウクラス名が「Notepad」であるウィンドウを検索して、見つかればそのWindowオブジェクトを「w」変数に代入しています。
次のif文で、ウィンドウが見つかったかどうかに応じて分岐しており、見つからなかった場合は新規にnotepadにスクリプトファイルを与えて起動し、見つかった場合はスクリプトファイルのドロップをエミュレートした後ウィンドウをアクティブ化しています。
Main.scriptというのは、自プロセスで実行されているスクリプトファイルを表すFileオブジェクトです。

なお、dropFiles()には、配列で複数のファイルを渡したり、第2,第3引数でドロップされるX/Y座標も指定することも出来ます。また、ドロップするファイルはFile/Directoryオブジェクトではなく単なるフルパス文字列で指定しても構いません。

「開く」メニューなどによるファイル指定方法が用意されているソフトでも、ドロップで指定した方が1ステップで済んで便利ですので、自動化ツールを作成する時には是非dropFiles()を活用してください。

0 件のコメント:

コメントを投稿