AfterEffectsやPhotoshopでvbsを実行する方法


表題通り。

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エンジンをうまく使った方が利口とか?

以上、今日のメモでした。


Leave a comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください