v4.0
ProgID
のスクリプトによって指定されたActiveXオブジェクトを作成して戻します(例:"XSI.Collection")。このメソッドは、NetViewベースのHTMLページのコンテキスト内で使用すると便利です。"Scripting.FileSystemObject"オブジェクトのようなオートメーションオブジェクト(COm
オブジェクト)を作成する場合に
NetViewの警告ダイアログが表示されません。また、他のスクリプト言語(JScript、Python、PerlScriptなど)を使用してActiveXオブジェクトを作成するさまざまな方法を覚えるよりも、このメソッドを使う方が便利です。
各種スクリプト言語では、オートメーションオブジェクトを作成する機能がサポートされています(たとえばJScript の"new
ActiveXObject"など)。ただし、Netviewから呼び出すと、ネイティブメソッドでは警告メッセージが表示されてしまいます。これは、多くの
ActiveXオブジェクト("Scripting.FileSystemObject"や"Microsoft.XMLDOM"などのオブジェクト)がWebページに含まれると問題が生じる可能性があると判断されるためです。ただし、Softimage
でNetviewページを実行するうえでは、これらのセキュリティに関する警告は意味をなさないため、このメカニズムを用いて警告を省略することができます。
Softimage のオートメーションオブジェクト(Application、XSIFactory、XSIMathなど)はすべて安全と判断されるため、作成時にこのメソッドを使用する必要はありません。
oReturn = XSIFactory.CreateActiveXObject( ProgID ); |
新しく作成されたオブジェクト
パラメータ | タイプ | 詳細 |
---|---|---|
ProgID | String | ProgIDとしてのオブジェクトの名前("servername.typename")。たとえば、"Scripting.FileSystemObject"や"Excel.Sheet"となります。 |
' ' This function is a useful tool within Netview Scripts that want to use ' Automation objects like "Scripting.FileSystemObject" ' function SafeCreateObject( in_ProgID ) on error resume next ' First create our ActiveX (which is marked as safe) set oXSIFactory = CreateObject( "XSI.Factory" ) ' Use xsifactory to create the object set oOBj = oXSIFactory.CreateActiveXObject( in_ProgID ) if err.number <> 0 then ' Problem might be that user is running an older version of Softimage, so ' try the old version (this method might pop a ActiveX warning dialog) err.Clear set oObj = CreateObject( in_ProgID ) end if set SafeCreateObject = oObj end function ' Example use set oXML = SafeCreateObject( "Microsoft.XMLDOM" ) oXML.load "c:\info.xml" |
function getFileSystemObject() { // Avoid the warning dialog that will appear NetView // by getting Softimage to create the object for us var oXSIFactory = new ActiveXObject( 'XSI.Factory' ); var fso = oXSIFactory.CreateActiveXObject( 'Scripting.FileSystemObject' ); return fso ; } |
import win32com.client my_xsifactory = win32com.client.Dispatch( "XSI.Factory" ) my_fso = my_xsifactory.CreateActiveXObject( "Scripting.FileSystemObject" ) Application.LogMessage( my_fso.FolderExists( 'C:\\temp' ) ) |