スクリプトファイルを実行します。このルーチンを使用すると、単一のプラグインを複数の言語で記述できます。たとえば、VBScript スクリプトで、JScript で記述されているヘルパー関数を呼び出すことができます。また、COM C++ プラグインでスクリプトコードを実行する場合にも便利です。
さらに、スクリプトをカスタムコマンドとして登録することも可能です。この方法の利点の 1 つは、スクリプトを呼び出す場合にそのスクリプトのフルパスを知らなくてもよいということです。
エラーが生じた場合は、グローバル ErrorInfo に説明情報が格納されます。たとえば、解析エラーやスクリプトエラーが生じた場合は、問題の説明が ErrorInfo.Description プロパティに記録され、行番号は ErrorInfo.HelpContext プロパティに記録されます。この情報を確認する方法は、言語によって異なります。たとえば、C++の場合は'GetErrorInfo()'、VBScript の場合は 'err'、JScript の場合は 'Error object' を参照してください。
Object Application.ExecuteScript( String in_FileName, String in_LanguageProgID, String in_ProcName, Object& io_Params ); |
oVariant = Application.ExecuteScript( FileName, [Language], [ProcName], [Params] ); |
プロシージャの戻り値を含むVariant
| パラメータ | タイプ | 説明 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| FileName | String または Expression | スクリプトファイルのフルパス | ||||||||||||
| Language | String または Expression |
言語を使用してスクリプトを記述します。 デフォルト値:ファイル名の拡張子を基に決定
|
||||||||||||
| ProcName | String |
実行するサブルーチンの名前。スクリプト言語の性質によっては、グローバルコード(たとえば、サブルーチンに含まれないコード)も実行されます。 ヒント:サブルーチンは、VBScript では"sub"または"function"、JScript では"function"、PerlScript では"sub"、Python では"def"になります。 |
||||||||||||
| Params | VariantのArray | サブルーチンに渡す引数 |
Dim fso, wText, bInteractive, TestFile
TestFile="c:\temp\test.vbs"
Main()
'------------------------------------------------------------------------------
' NAME: FillFile
'
' INPUT:
'
' DESCRIPTION: Fill the test file
'------------------------------------------------------------------------------
sub FillFile (in_file)
wText.WriteLine "Main()"
wText.WriteLine ""
wText.WriteLine "sub log_some_messages(an_int, a_string)"
wText.WriteLine "logmessage ""the int : "" & an_int"
wText.WriteLine "logmessage ""the string : "" & a_string"
wText.WriteLine "end sub"
wText.WriteLine ""
wText.WriteLine "sub main()"
wText.WriteLine "CreatePrim ""Sphere"", ""NurbsSurface"""
wText.WriteLine "end sub"
wText.Close
end sub
sub main()
Set fso = CreateObject("Scripting.FileSystemObject")
Set wText = fso.CreateTextFile( TestFile, 1)
FillFile TestFile
ExecuteScript TestFile
dim aParams
aParams = Array(123456789, "toto")
ExecuteScript TestFile,,"log_some_messages", aParams
end sub |