MURASHIKI BLOG | ブログ 村式株式会社

HOME ALL INSIDE LEARN NEWS WORK 社長ブログ

javascriptでWindowsも快適に

Pocket

Windowsを使ってるプログラマーなら、ちょっとした作業をプログラムにやらせたいと思うことがよくあると思います。
WindowsにはJScriptやVBAScriptで扱えるシェルっぽいものとしてWindows Script Host(WSH)が用意されていますが、なぜかあまり使われていない印象があります。WSHは私も使ったことがありますが、目玉商品がファイルシステムにアクセスできるオブジェクトくらいでなんとなく地味なのです。
そこで、今回はもっと使われていないDMonkeyを紹介します。

DMonkeyとは

SFjpの公式をみると「Delphiへの組み込みを目的としたECMAScriptエンジン」と書かれています。WEBプログラマーに解りやすく一言で説明するなら、javascriptで便利に使えるオブジェクトがたくさん詰まったものです。
例えばHTTPオブジェクトを使えば一行でHTMLを取ってくることができます。

var html = (new HTTP()).get('http://ville.jp');

便利なオブジェクト群の他にもClassが使えたり、別のスクリプトをインポートできたり、GUIをつくることもできますので、がっつり作り込むことも可能です。
※ここまで散々javascriptと書いてきましたがDMonkeyは正確にはECMAScriptのサブセットです。

用意されているオブジェクト

これを見ればDMonkeyで大体どんなことができるか想像できるのではないでしょうか。

Object, Global, Array, Number, Boolean, String, RegExp, Math, Date, File, Directory, Strings, Win32, Ini, RegIni, CRC, Base64, Dialog, Mutex, URL, Cookie, Response, HTTP, HTTPS, HtmlTag, HtmlParser, FileProperty, FTP, TCPSocket, Mail, POP3, SMTP, ActiveXObject, Keyboard, Mouse, Clipboard, DynaCall, Struct, StringBuffer, WScript, Enumerator, CheckListBox,

ネット系の人ならこのあたりが気になるでしょう。
HTTP, Cookie, SMTP, FTP, HtmlParser

ハードコアな人ならこの辺に目が行くと思います。
Mutex, Struct, Win32, DynaCall
昔DynaCallを使ってスクリプトからuser32.dllやkernel32.dllを叩くのが流行りました。

ファイルシステムを操作できるのはやはり便利です。
ファイルの中身を見つつ一定のルールでリネームしたりするのも、これらのオブジェクトを利用すれば簡単に書けます。
File, Directory

簡単な例

ファイルの読み書き

var f = new File('temp.txt');
try{
  f.open('w');
  f.writeln('hello');
}
catch(e){
  println(e);
}
finally{
  f.close();
}

HTTP通信

var html = (new HTTP()).get('http://ville.jp');
alert(html.indexOf('村式'.toUTF8()));

DMonkeyで操作できるエディタ

VxEditorとJmEditorというエディタはDMonkeyで扱えるように作られていて、
Editor.SelText などとして選択中のテキストの読み書きができたりします。

おわりに

DMonkeyでWindowsもハックしましょう。

公式
http://sourceforge.jp/projects/dmonkey/

VxEditor & DMonkey布教ページ
http://lukewarm.s41.xrea.com/index.html

この記事を書いた人

中川尚(メガネ)

東京生まれ。幼少期はサウジアラビアで世界各国の友人と過ごす。 早稲田大学・大学院では暗号の研究に従事。情報セキュリティの職を経て村式創業に参画。自然、宇宙、日本文化、音楽、芸術、数学、仏教、神道、テクノロジーなど人智を超えてそうなものに興味がある。 夜更けになると鎌倉の裏通りに繰り出し、地元の怪しい仲間たちと酒を酌み交わしている。

タグ一覧

ALL INSIDE LEARN NEWS TOP WORK 社長ブログ