10 minutes programming
12月号の日経ソフトウェアの付録「かんたん10分プログラミングレシピ」に載っていたコマンドラインプログラムをビジュアルにするHTA、これを元にいろいろ勉強していくことにした。
まずはP/B/Cの分離、HTAとしては一つにまとまっていたほうが配布の際も便利だが、今回はWEBアプリの勉強のつもりなので分離する。
次にradioボタン以外の要素のname属性をid属性に変更。name属性は極力使用しない方向で。
次に結果表示領域にstyleを指定したいのでclass属性を指定。
link要素でcssファイルをimport。
script要素でscript部分を外部ファイルにしてimport。
ここまででほぼ分離できてるのだが、onClick属性がまだ分離できていない。
vbscriptをjavascriptに書き換えるついでに分離する。
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();
これで完了。
とりあえず今日はここまで。