表題通り。
function writeVBSFile(source)
{
var vbs = new File(Folder.temp.fsName + "/temp.vbs");
var ret = vbs.open ("w")
if (ret)
{
vbs.write(source);
vbs.close();
}
return vbs;
}
var s = [
"Dim wsh",
"Set wsh = CreateObject(\"WScript.Shell\")",
"wsh.Run \"C:\\Windows\\System32\\notepad.exe\", 1, False"
]
var vbs = writeVBSFile(s.join("\n"));
var fobj = new File(vbs);
var ret = fobj.execute();
// うまく行けば1
alert(ret);
こんな感じ!
メリットは、system. callSystem()では一瞬黒窓が開いてしまうけれど、
これならバックグラウンドで完全に実行できる。
それにwshなどのオブジェクトも使えるから、特殊なデータの引き出しにも使える。
例えばドメイン情報とか。
使い勝手はいろいろ。
Excelと組み合わせてもいいし、ほかのexeと組み合わせても。
例えば、AfterEffects上でフッテージの画像サイズを小さくするようなexeを裏で回せるし、
画像形式を変えるexeを利用もできる。
ただリターンが成功か否かしか拾えないのが微妙かも。
もしかしたら拾う方法あるかも?
またはCEPエンジンをうまく使った方が利口とか?
以上、今日のメモでした。