4DとVBSでパラメータの交換
日付 | 2015/07/30 |
---|---|
ID | 15-010 |
バージョン | 11以降 |
プラットフォーム | Windows, Mac |
4Dから呼び出したVBSにパラメータを渡したり、ストリームで結果を受け取ることは可能です。
次の例題は、4D側から渡した2つの引数をVBS側で受け取り、その引数をそれぞれ標準ストリームとエラーストリームに出力し、そのストリームを4D側で受け取り表示しています。コマンドライン呼び出しの場合にストリームが使えるので、ストリームを使うためにcscriptを経由して呼び出ししているところがポイントになります。
VBS(Resourcesフォルダ内にtest.vbsという名称のファイルで保存):
Option Explicit Dim objParm '引数を保存 Set objParm = Wscript.Arguments '引数をストリームに出力 WScript.StdOut.WriteLine objParm(0) WScript.StdErr.WriteLine objParm(1)
4Dメソッド:
//パラメータの準備 C_TEXT($pram1;$pram2) $pram1:="こんにちは" $pram2:="こんばんは" //VBSの呼び出し C_TEXT($command;$inputStream;$outputStream;$errorStream) $command:="cscript "+Get 4D folder(Current resources folder)+"test2.vbs"\ +" "+$pram1\ +" "+$pram2 SET ENVIRONMENT VARIABLE("_4D_OPTION_HIDE_CONSOLE";"true") LAUNCH EXTERNAL PROCESS($command;$inputStream;$outputStream;$errorStream) //受け取ったストリームの表示 ALERT($outputStream+"========\r"+$errorStream)