JScriptはローカル環境でwindowsを操作するjavascriptです。
より厳密にはJavascriptの標準となるECMAScriptを元にMicrosoftが作った言語。
WSH等からもサポートされている。
WSHとは
Windows上のスクリプト実行環境。
徐々にPowerShellに置き換えられつつあるが、実行権限を付与しなくても
.wsfファイルをダブルクリックで実行できる等、強みもある。
WSHをサポートする言語としては、他にもVBScript等がある。
VBScriptのコードを元にJScriptに落とし込む際には、
注意事項として、VBScriptは引数無しの関数は()が省略可能なので、
JScriptでそのまま囲うとするとエラーになるケースがある。
例:var ws = WSCript.CreateObject("Shell.Windows");
var obj = ws.windows(); //VBScriptの記述だと、ws.windowsとなっていたりする。
WScriptとは
WSHのオブジェクトモデルのルート階層。
対話型でGUIのイメージで、jsファイルをダブルクリック等で呼び出す。
CScriptはコマンドプロンプトのイメージで、cscript xxx.jsのような形で呼び出す。
WScriptObject
jsにドラッグ&ドロップした時のファイル等は
WScript.Arguments等で取得できます。
ちなみにArguments(1)とArguments.Item(1)は同意。
名前付き引数はWScript.Arguments.Named.Item("オプション名")で取れる。
標準入力の値は、
WScript.StdIn.ReadLine()で取得できます。
ActiveXObjectと主な役割
基本的にwindowsコンポーネントを扱う場合には、
WSHやVBScriptから利用する場合はCreateObject(windowsを動かすためのコンポーネント的なもの),
JScriptから利用する場合はnew ActiveXObject(windowsを動かすためのコンポーネント的なもの)を利用する。
名称が色々変わっているためややこしいが、ActiveXObject≒OLE≒COMの位置づけである。
細かい違いは
Microsoftのページ等を
参照ということで置いておき、ここでは使い方に注視してみる。
使用できるActiveXObjectの種類
ActiveXObjectとして、どんなものが使えるかは以下のような方法で知ることが出来る。
- regeditでレジストリのHKEY_CLASSES_ROOT(≒HKEY_LOCAL_MACHINE\SOFTWARE)を見る。
- こちらのサイトも参考にする。
- windows sdkにoleview.exeというCOM情報を見ることができるツールもあるらしい??ので、それを使う。
上記の手段でActiveXObjectを取得したら、以下のようなjavascriptを記述し、
ActiveXObjectのプロパティやプロパティの中身の一覧を得ることで、
色々出来る…かもしれない。
for(property in obj){
console.log(property);
console.log(obj[property]);
}
その他
wmiも操作可能とか。ただし精通していないと使いこなせないので、wmi code creatorを使うと良いかも。
最終更新:2017年02月09日 23:03