10 minutes programming

12月号の日経ソフトウェアの付録「かんたん10分プログラミングレシピ」に載っていたコマンドラインプログラムをビジュアルにするHTA、これを元にいろいろ勉強していくことにした。

まずはP/B/Cの分離、HTAとしては一つにまとまっていたほうが配布の際も便利だが、今回はWEBアプリの勉強のつもりなので分離する。

次にradioボタン以外の要素のname属性をid属性に変更。name属性は極力使用しない方向で。
次に結果表示領域にstyleを指定したいのでclass属性を指定。

link要素でcssファイルをimport。
script要素でscript部分を外部ファイルにしてimport。

ここまででほぼ分離できてるのだが、onClick属性がまだ分離できていない。
vbscriptjavascriptに書き換えるついでに分離する。

window.load = function() {
  form1.go_ping.onclick = go_ping;
}

とりあえずこんな感じでhtaファイルのonClick属性を削除した。

で、あとは文法的な部分の置き換え、Dim、Setをvarに、For To Nextをfor(;;)に置き換えた。
ちょっと苦労したのはCreateObject("WScript.Shell")。
同付録の他のプログラムを見るとJScriptではCreateObjectの代わりにActiveXObjectを使えばいいらしいのだが、それだけだとエラーになる。

エラーになるのは

R = oExec.Stdout.ReadAll;

の部分。よくわからないので検索してみると、microsoftのWSHのリファレンスが見つかった。
どうもStdoutはStdOutプロパティで、ReadAllはメソッドなのでReadAll()とするのが正しいようだ。

R = oExec.StdOut.ReadAll();

これで完了。
とりあえず今日はここまで。