スクリプトコンポーネント
スクリプトコンポーネントは、スクリプト言語を使用して COM コンポーネントを簡単に作成することができます。スクリプトコンポーネントの中身はXMLですが、利用するタグは決まっているのでXMLを知らない人でもある程度は習得できるでしょう。
簡単な作り方
Script Component Wizardを使うとXML部分を気にせずにコンポーネントの雛形を作成することができます。基本的には、この雛形+スクリプトプログラムでスクリプトコンポーネントは完成します。マニュアルにもありますが、Script Component Wizard はMicrosoftサイトから無償でダウンロードすることができます。
簡単な登録方法
作成したスクリプトコンポーネント(*.wsc)を右クリックすると「登録」というメニューが表示されますのでそれを選択します。成功するとコンポーネントがレジストリに登録されます。
簡単な解除方法
解除したいスクリプトコンポーネント(*.wsc)を右クリックすると「登録解除」というメニューが表示されますのでそれを選択します。解除に成功するとレジストリから情報が削除されます。
登録したコンポーネントの使い方
通常のコンポーネントと同様にインスタンスを作成して利用できます。たとえば、VBSならCreateObjectを使います。下記は、HOGE.ScriptComponent という名前のコンポーネントを使う例です。
Set objHoge = CreateObject("HOGE.ScriptComponent")
登録しないでもコンポーネントを利用できる
GetObjectを使うと登録していないコンポーネントを利用できます。レジストリを汚したくない場合や、簡易的に利用したい場合はこの方法を使ってインスタンスを作成します。
Set objHoge = GetObject("script:c:\data\hoge.wsc")
エラーで登録できない
拡張子.wsc を登録しようとしたらエラーが表示されるようになることがありました。調べてみると、サーブレット(拡張子.sct)は、正常に登録できる状態だったので、どうもこれが悪さしているのだなと思いました。登録に使われるdllは、.sctも.wsc もscrobj.dllらしく、 検索すると私のマシンには4つもあることが判明。しかも、それぞれサイズが違うし・・・(^^;
regsvr32 が Windows\system の scrobj.dll を読みに行ってなかったので、サーブレット用?のscrobj.dll をWindows\system のものと差し替えました。見事に登録できるようになりました。
.sct用と.wsc用で2種類スクリプトコンポーネントウィザードがあるので、.sct用をインストールしている人は同じ症状がでるかもしれません。