最近なんだかネタになるようなスクリプトとか書いてる時間がぜんぜんなくてネタにこまったのでjsi.jsに手を入れてみた。
といっても、コードの修正とかは結構前にやっていたもので、どちらかというと蔵出し的な感じ。ほんとにネタに困ってるんだってば。
手を入れたところは細かいバグ修正とライブラリの追加。zipは固めなおしてリビジョンあげたので、以下からダウンロードしてください。
サンプルのライブラリ設定ファイルとして、付属ライブラリをすべてロードする設定で「libsettings.sample」を添付しているので、これを「libsettings」とリネーム、適当に編集して使ってください。
こんな感じ。
かなり前のネタになるが、VBScriptラッパーをライブラリに追加。細かい使い方はリンク先を見てもらうとして、いくつか組み込みメソッドを提供しているのでちょろっと使えるかも。ま、こっちの記事ですでに紹介してるやつなんですが。
VBSのTypeName関数のラッパーです。引数に渡したオブジェクトのCOMオブジェクト型を返します。こんな感じ。
jsi > var vb = new VBScript; --> (undefined) jsi > vb.getTypeName(new ActiveXObject("Scripting.FileSystemObject")); --> FileSystemObject jsi >
VBSのInputBox関数のラッパー。ブラウザのprompt()感覚で使える。かな。
引数は2つ渡すことが可能で、第一引数にはダイアログメッセージ、第二引数にダイアログタイトルを指定できます。んで、入力された文字列か、キャンセルされた場合はnull(正確にはundefined)が返ります。
jsi > vb.prompt(); // ここでInputBoxが表示される。キャンセルしたとすると... --> (undefined) jsi > vb.prompt(); // こんどは'hoge'とでも入れてみると... --> hoge jsi >
VBSのMsgBoxラッパーで、vbYesNo定数を渡して[はい][いいえ]の2択処理をします。引数はpromptメソッドと同じくダイアログメッセージとタイトルです。戻り値はvbYes定数(=6)かvbNo定数(=7)が返ります。もう一層ラッパーかぶせてconfirmっぽくしてもよいかも。
jsi > vb.yesNo(); // [はい]クリック --> 6 jsi > vb.yesNo(); // こんどは[いいえ]クリック --> 7 jsi >
まず役立つ局面はそうはないだろうけど、VBSでのNothingを取得するgetNothingメソッドもつけてます。JS上ではnullとして扱われますが、getTypeName()を通すとNothingであることが確認できます。それだけですが...
jsi > vb.getNothing(); --> (null) jsi > vb.getTypeName(vb.getNothing()); --> Nothing jsi > vb.getTypeName(null); --> Null // JSのnullはNullあと、ほとんど意味ないんですが、getEmpty()もつけてみました。VBSのEmptyを取得します。が、これ、JSのundefinedと同じなのよね。サンプル省略。
WMIへアクセスするためのライブラリ+WQLを実行するコンソール機能を提供します。詳しい解説はそのうち書きますが、とりあえず追加のドットコマンド「.wmi」を実行してみてください。
jsi > .wmi WMI Console for jsi.js server: localhost, root: root/cimv2 wmi@localhost >プロンプトがこのように変わります。この状態で
コメントをする