WScript オブジェクト

WScript オブジェクトは Windows Script Host オブジェクト モデルのルート オブジェクトのため、多数のプロパティおよびメソッドが適用されます。

プロパティ

Pathホスト( WScript.exe または CScript.exe ) の格納先ディレクトリ名を返す。読取専用の文字列 
FullNameホストへの絶対パス。文字列 
Version

ホストのバージョン。文字列 
Interactive実行には"バッチ" と "インタラクティブ" の 2 つのモードがある。ブール値(true,false) 
NameWScript オブジェクト (ホスト実行可能ファイル) の名前を返す 
ScriptFullName実行中のスクリプトのファイル名を提供。 
Arguments引数のコレクション 
StdErr現在スクリプトのエラー出力ストリームを公開。書き込み専用だがCScript.exeの実行中のみアクセスできる
StdIn現在スクリプトの入力ストリームを公開。 読み取り専用だがCScript.exeの実行中のみアクセスできる。
StdOut現在スクリプトの出力ストリームを公開。 書き込み専用だがCScript.exeの実行中のみアクセスできる。

コード例
WScript.Interactive = true; WScript.Echo (WScript.Path); WScript.Echo (WScript.Version); WScript.Echo (WScript.Name); WScript.Echo (WScript.ScriptName); WScript.Echo (WScript.FullName); objArgs = WScript.Arguments; for (i = 0; i < objArgs.length; i++) { WScript.Echo(objArgs(i)); } ルートオブジェクトのため、「インスタンス」なしで利用できる。 任意のスクリプト ファイルから、いつでも利用できる。

メソッド

CreateObject メソッド
object . CreateObject ( strProgID [,strPrefix ] )
object
WScript オブジェクト。
strProgID
必須。オブジェクトのプログラム ID (ProgID) を表現する文字列。
strPrefix
省略可能。オブジェクトプログラムのプリフィックスを示す文字列値。

現在インスタンスがない場合や、新たにファイルをロードしてオブジェクトを作成する場合は、CreateObject メソッドを使用する。

CreateObject メソッドで strPrefix 引数を指定すると、接続されたオブジェクトが作成される。これは、オブジェクトのイベントを同期させる場合に便利。オブジェクトの出力インターフェイスは、オブジェクト作成後にスクリプト ファイルに接続される。イベント処理関数は、このプリフィックスとイベント名を組み合わせた名前になる。
オブジェクト作成時に strPrefix 引数を指定しなかった場合は、ConnectObject メソッドを使ってオブジェクトのイベントを同期させることができる。
オブジェクトがイベントを発行すると、WSH は strPrefix + イベント名という形式の名前を持つサブルーチンを呼び出します。たとえば、strPrefix が MYOBJ であり、オブジェクトが OnBegin というイベントを発行した場合、Windows Script Host はスクリプト内の MYOBJ_OnBegin という名前のサブルーチンを呼び出します。CreateObject メソッドはオブジェクトの IDispatch インターフェイスへのポインタを返す。


GetObject メソッド
object.GetObject(strPathname [,strProgID], [strPrefix])
object
WScript オブジェクト。
strPathname
必須。取得するオブジェクトがあるファイルの絶対パスと名前を指定。
strProgID
省略可能。オブジェクトのプログラム ID (ProgID) を表現する文字列。
strPrefix
省略可能。オブジェクトのイベントを同期させる場合に使用。strPrefix パラメータを指定した場合、Windows Script Host は、オブジェクト作成後にオブジェクトの出力インターフェイスをスクリプト ファイルに接続する。
オブジェクトの現在インスタンスがある場合か、既にロードされているファイルからオブジェクトを作成する場合、GetObject メソッドを使用する。
GetObject メソッドは、どの言語でオブジェクトを作成したかに関係なく、すべての COM クラスで使用できる。
strPrefix 引数を指定した場合、WSH はオブジェクト作成後にオブジェクトの出力インターフェイスをスクリプト ファイルに接続します。オブジェクトがイベントを発行すると、WSH は strPrefix + イベント名という形式の名前を持つサブルーチンを呼び出す。たとえば、strPrefix が MYOBJ_ であり、オブジェクトが OnBegin というイベントを発行した場合、Windows Script Host はスクリプト内の MYOBJ_OnBegin という名前のサブルーチンを呼び出す。

シングルインスタンスのオブジェクト (たとえば Microsoft Word 7.0 の Word.Basic オブジェクト) として登録されている場合、CreateObject を何度実行しても、オブジェクトのインスタンスは 1 つしか作成されない。さらに、シングルインスタンスのオブジェクトの場合、長さ 0 の文字列 ("") を指定して GetObject を呼び出すと必ず同じインスタンスが返り、パスのパラメータを省略するとエラーが発生します。
GetObject では、Visual Basic 4.0 以前のバージョンで作成した Microsoft Visual Basic クラスへの参照を取得できません。
Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
オブジェクトのクラスを指定しなかった場合、COM は指定されたファイル名に基づき、起動するアプリケーションとアクティブにするオブジェクトを判断します。ただし、オブジェクトのクラスが 2 つ以上サポートされるファイルもあります。たとえば、図面ファイルでは、Application オブジェクト、Drawing オブジェクト、Toolbar オブジェクトという 3 種類の型のオブジェクトがサポートされ、どのオブジェクトも同一のファイルに入っています。
次の VBScript コードは、描画アプリケーション FIGMENT を起動し、ファイル SAMPLE.DRW 内のオブジェクト DRAWING を開く例です。
Dim MyObject As Object
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")

|ConnectObject メソッド|DisconnectObject メソッド| Echo メソッド| Quit メソッド |Sleep メソッド|