如果宿主應(yīng)用程序需要,您可以使用 Regsvr32.exe 之類的程序?qū)?Windows® 腳本部件注冊(cè)為 COM 部件。注冊(cè)操作將把有關(guān) COM 部件的信息放在一個(gè)公共位置(在 Windows 中,注冊(cè)信息存儲(chǔ)在 Windows 注冊(cè)表中)。通過讀取注冊(cè)信息,應(yīng)用程序可以找到并載入該 COM 部件。
注意 并不是在每種情況下都需要進(jìn)行注冊(cè)。例如,如果腳本部件實(shí)現(xiàn)的是 Internet Explorer 5.0 中的 DHTML Behavior 接口處理程序,則該腳本部件就不需要注冊(cè),因?yàn)?Internet Explorer 將按照在頁面上所檢測到的操作進(jìn)行注冊(cè)。關(guān)于使用 Behavior 的詳細(xì)信息,請(qǐng)參閱 Microsoft Site Builder Network (SBN) Web 站點(diǎn)上的關(guān)于使用 DHTML Behavior 主題。如果宿主應(yīng)用程序支持名字(monikers),那么不必進(jìn)行注冊(cè)就可以創(chuàng)建一個(gè)腳本部件的實(shí)例。
在指定注冊(cè)時(shí),最重要的信息有:
Set Component = CreateObject("Component.MyComponent")
注意 如果使用腳本部件向?qū)?chuàng)建了一個(gè)腳本部件,該向?qū)⒆詣?dòng)創(chuàng)建一個(gè)程序 ID 和類 ID。詳細(xì)信息請(qǐng)參閱使用腳本部件向?qū)?/A>。
注冊(cè)信息還包括一個(gè)描述和版本號(hào)。
在注冊(cè)腳本部件時(shí),注冊(cè)程序可以為其創(chuàng)建一個(gè)類 ID。不過,該程序強(qiáng)烈建議您自己為該腳本部件提供一個(gè)類 ID,以確保該腳本部件在其注冊(cè)的所有計(jì)算機(jī)上具有相同的類 ID。如果與存儲(chǔ)類 ID 的開發(fā)工具一起使用該腳本部件,則讓注冊(cè)程序來創(chuàng)建類 ID 還有可能導(dǎo)致問題。如果注冊(cè)過程每次創(chuàng)建一個(gè)新的類 ID,則與應(yīng)用程序所存儲(chǔ)的 ID 會(huì)不匹配。
要為腳本部件創(chuàng)建注冊(cè)信息
<registration description="My Test Component" progid="Component.TestScript" version="1" classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"/>
注意 <registration> 元素中的注冊(cè)屬性的順序可以任意。
腳本部件的 <registration> 元素還允許您包括在注冊(cè)和取消注冊(cè)時(shí)將執(zhí)行的腳本。例如,您可以在腳本部件完成注冊(cè)后發(fā)布一個(gè)消息。
要在注冊(cè)和取消注冊(cè)期間運(yùn)行腳本
下述示例演示了在注冊(cè)腳本部件或取消其注冊(cè)時(shí)如何發(fā)布消息。
注意 CDATA 項(xiàng)是必需的,以使 <script> 元素中的腳本成為不透明的。詳細(xì)信息請(qǐng)參閱 腳本部件文件和 XML 一致性。
<registration description="My Test Component" progid="Component.TestScript" version="1" classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"> <script language="VBScript"> <![CDATA[ Function register() MsgBox "Component 'My Test Component' registered." End Function Function unregister() MsgBox "Component 'My Test Component' unregistered." End Function ]]> </script> </registration>
如果將腳本部件部署在一個(gè)分布式環(huán)境中,則可以指定允許遠(yuǎn)程實(shí)例化該腳本部件。例如,您可能創(chuàng)建了一個(gè)在服務(wù)器上運(yùn)行,但需要從客戶端的代碼來調(diào)用的腳本部件。如果客戶端和服務(wù)器端的機(jī)器都正確配置了 DCOM,則這種方式是可行的,因?yàn)?DCOM 提供了將對(duì)象指針從服務(wù)器傳給客戶端的機(jī)制。
為遠(yuǎn)程訪問注冊(cè)腳本部件
<registration description="My Test Component" progid="Component.TestScript" version="1" classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}" remotable=true/>
關(guān)于遠(yuǎn)程創(chuàng)建腳本部件的實(shí)例的詳細(xì)信息,請(qǐng)參閱在應(yīng)用程序中使用腳本部件。
腳本部件文件的內(nèi)容 | 使用腳本部件文件向?qū)?/A> | 創(chuàng)建腳本部件類型庫 | 檢查腳本部件文件中的錯(cuò)誤 | 腳本部件文件和 XML 一致性