年金ロボットをめざして

FX(外国為替証拠金取引)自動運用ロボットの開発ブログのはずだった

Windows 自動化言語

Windows 自動化言語? そりゃなんだ!?

f:id:fxrobot:20131213073136j:plain

どう呼んだらいいものか、COMオブジェクト操作言語とでも言えばよいのか、しかし、それではどの言語でも可能と言えば可能。Windows 操作言語? みんなそうだろ。思いきって大衆的に「Windows 自動化言語」と呼んでみるのはどうだろうか。

で、それはどんな言語?

うん、Windows というのだから、プログラミング言語だね。そして Windows 密着型の言語なんだ。Mac 版や Linux 版があったのでは Windows 密着型というのはおかしいだろう。だから、今回は Mac や Linux の人には残念でしたと言うほかはない。

具体的にいうと、IE や Excel などを自動操作したり、Windows 上の操作を記録再生したりと、Windows 細部に関する Windows ユーザーの多くの要求に応えることのできる言語なのだ。

どんなものがあるのか?
今回、3つの Windows 自動化言語を紹介する。

そのうち AutoHotKey と AutoIt には Window スパイツールが付いている。それも Windows 自動化言語の特徴といえる。また、すべて無料で使うことができる。ただし、UWSC には、一部オプションで有料版もある。

AutoHotKey - http://www.autohotkey.com/
f:id:fxrobot:20131213051623j:plain

 このブログでは初めて取りあげると思うけど、これは凄いツールでね、キーマップを簡単に変えたりできてしまう。また、プログラミング言語としてもとてもおもしろいのだ。

また、AutoHotKey は、ぼくが最も注目する Windows 自動化言語だ。Windows の GUI も自由自在で、もちろん COMオブジェクトも操作でき、連想配列もあり、正規表現も可能だ。コンパイルもでき(正確にはバインド)、スタンドアロンの実行ファイルを作ることができる。

ぼくの言語要件を満たしてくれるものだ。

f:id:fxrobot:20131213070125j:plain

また、AutoHotKey は、最近になってとくに安定度を増してきたようで、これから使ってみようという人にもグッドタイミングと言えるだろう。

さて、左の画像は、AutoHotKey の Window スパイツールででその名も Window Spy だ。

そのときアクティブなウィンドウの情報をリアルタイムに表示する。

AutoHotKey のプログラムで使用するためのウィンドウのタイトルやウィンドウの座標、ウィンドウ内のマウスポインタの座標などを表示してくれる。

AutoHotKey については、書くべきことがたくさんあり、また改めて記事にする予定だ。


【 AutoIt - http://www.autoitscript.com/f:id:fxrobot:20131213051722j:plain

AutoIt は、前にも記事にしたが、日本国内においても、もっと多くの Windows ユーザーが使うべき言語だとおもう。プログラミング言語としてもしっかりしたもので、構文に関してはほぼ Basic 言語であると言ってよいと思う。(これに対し AutoHotKey は特殊な形式だ)

また、AutoIt には大変多くの機能があり、Windows に対してできないことはないと言ってもよいほどだ。そして GUI の扱いが最も容易な言語の一つだ。

AutoIt も作ったスクリプトを実行ファイル(exe)化するツールが付いている。作ったプログラムを単独のファイルとして配布することが可能だ。

f:id:fxrobot:20131130153312j:plain上は、AutoIt に添付の Window スパイツールである Au3Info.exe を使っているところ。


UWSC - http://www.uwsc.info/f:id:fxrobot:20131213051736j:plain

f:id:fxrobot:20131213052451j:plain

UWSC は、今回唯一の国産の Windows 自動化言語だ。

Windows 上の操作を自動記録するレコーダー機能をもっている。記録された一連の動作は UWSC のコードとして残るので、それを修正・変更してプログラムとして活用することができる。

プログラミング言語としても立派なもので、多くの機能をもっている。ただし、GUI は充実しているとは言えず簡単なものしかできない。複雑な GUI は HTML(HTA)を利用する(有料版)。また、基本構文はほぼ Basic といえる。

UWSC も作ったスクリプトを実行ファイル化(exe)できるが、この機能は有料バージョンに限られる。

また、右画像にある書籍が発売されており、UWSC の入門書として参考になるものだ。ぼくも一度読んだことがあるが、例によって書籍自体は今はどこかに行ってしまった。

今回紹介した 3つの Windows 自動化言語は、Windows に密着した機能を多くもっており、例えばどの言語も Windows レジストリを操作できる。機能も共通した点も多く、ツールとしての方向性に共通点が多いのだ。

また、AutoHotKey、AutoIt 共にユニコードUnicode)に対応しており、この 2つに UWSC を加えた 3つを、国内で使える 3大 Windows 自動化言語としたい。


そして、最後に番外として、ActiveScriptRuby を紹介する。(前回も書いたけどね)

えっ、Ruby って Mac でも Linux でも使えるよね。
そのとおりなのだ。だけど、ActiveScriptRuby は Windows だけのものだ。

【 ActiveScriptRuby - http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/f:id:fxrobot:20131213051749j:plain

 

 f:id:fxrobot:20131212050418j:plainActiveScriptRuby も COMオブジェクト操作機能を持ち Windows 自動化言語といってもよいかもしれない。ただし、Window スパイツールは付いていなかったと思うけどね。

ただ、それについてはどうせ無料で使えるのだから AutoIt の Window スパイツールである Au3Info.exe を使えばいいよね。

右画像の書籍「Ruby on Windows」は昔読んだ本を再注文。昨夜到着した。まずは全体を眺めてみたが、やはりおもしろい。

ActiveScriptRuby で Windows を操作したいなら一度読んで損のない本だと思う。今ならアマゾンで千円くらいで手に入るよ。

参考までに目次を書いておくね。
(と思ったけど、ネットの書籍紹介に目次があったのでコピペ)

第  1 回 Win32OLE ことはじめ
第  2 回 Excel
第  3 回 ADODB
第  4 回 Outlook
第  5 回 Web 自動巡回
第  6 回 Windows アプリケーションの自動操作
第  7 回 他の言語での COM
第  8 回 WMI
第  9 回 iTunes
第 10 回 Exerb
第 11 回 RubyCLR
第 12 回 Rjb と Apache POI
第 13 回 JRuby

付録 A Windows での Ruby 実行環境のインストール
付録 B Ruby 統合開発環