プログラミング

JScriptでinputBoxを使う

2008年3月25日

マイクロソフトの新しいシェル、PowerShellについて色々と見ていて、私自身が一番分かりやすい説明だと思ったのが、次の記事。

Windowsスクリプティング環境比較:PowerShell vs WSH

PowerShell自身について何か書くのは別の機会に譲るとして、これを読んで面白いことに気がついたので、メモ。この記事の中から、マイクロソフトの次のページにリンクされている。

Converting VBScript Commands to Windows PowerShell Commands

VBScriptでできることは一通りPowerShellでできるらしい。で、思い出したのが、inputBox。これは、WSHにおいてはVBScriptにだけ実装されている機能で、JScriptでは使えない。PowerShellではどうかと、調べてみた。

InputBox: OK, this was a tough one.

『was』と書かれていることから分かるように、解決されている。その方法は、MSScriptControl.ScriptControlというCOMオブジェクトを作成し、そこでVBScriptのコードを実行させるというもの。なるほど。

ということは、同じ方法がJScriptでも使えるはず。これは無理だとずっとあきらめていたことなので、この方法を知って嬉しかった。次のコードで実行できる。

var obj=WScript.CreateObject("MSScriptControl.ScriptControl");
obj.language="vbscript";
obj.addcode("function getInput() getInput = inputbox(\"Message box prompt\",\"Message Box Title\") end function");
var i=obj.eval("getInput");
WScript.Echo(i);

実行結果は、次のとおり。

inputBox

コメント

(2011年6月22日 19:53:04)

> obj.addcode("function getInput() getInput = inputbox(\"Message box prompt\",\"Message Box Title\") end function");
> var i=obj.eval("getInput");

var i=obj.eval("inputbox(\"Message box prompt\",\"Message Box Title\")");

これだけでもいいですね。

(2011年6月22日 20:32:01)

あ、ただ、大変参考になりました。というか知りませんでした。

コメント送信