Tips

4DとVBSでパラメータの交換

日付2015/07/30
ID15-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)