Windows Script Components  

Utilizar un componente de secuencia de comandos en una aplicación

Después de crear un componente de secuencia de comandos, puede utilizarlo de la misma forma que cualquier otro componente COM; para ello, llámelo desde una aplicación host, como Microsoft® Visual Basic®, C++, Microsoft® Internet Explorer u otras aplicaciones.

Nota   De los componentes de secuencia de comandos escritos para componentes de secuencia de comandos de comportamiento de DHTML se crean instancias de forma distinta a como se hace con los objetos COM tradicionales. Para obtener más información, consulte "Utilizar componentes de secuencia de comandos de comportamiento DHTML en el sitio Web de Microsoft Site Builder Network (SBN).

Hay varias opciones para crear una instancia del componente de secuencia de comandos, según la aplicación host, el tipo de componente de secuencia de comandos que utilice y dónde se distribuya el componente de secuencia de comandos. Sin embargo, la diferencia principal estriba en si se desea crear una instancia del componente de secuencia de comandos localmente (en el mismo equipo que la aplicación) o de forma remota (en otro equipo).

En cualquier caso, hay unos cuantos puntos que se deben tener en cuenta. Si se crea una instancia del componente de secuencia de comandos y se cambia el archivo .wsc mientras se utiliza, la instancia del componente no se actualizará. Para actualizarla, cree una instancia nueva del componente de secuencia de comandos.

Las propiedades y métodos exactos que se pueden utilizar los definen el elemento <public> y las secuencias de comandos del archivo componente de secuencia de comandos. Si trabaja en un entorno que admite terminación de instrucciones, como Visual Basic, puede ver las propiedades y métodos de un componente de secuencia de comandos si genera y utiliza una biblioteca de tipos. Para obtener información, consulte Crear una biblioteca de tipos de Script Component.

Si no consigue crear una instancia del componente de secuencia de comandos, una causa probable es un error de sintaxis o en tiempo de ejecución en el archivo componente de secuencia de comandos. Los errores de análisis en cualquier instrucción XML (incluido el elemento <registration>) puede impedir la creación de una instancia. Mientras desarrolle el archivo componente de secuencia de comandos, establezca las opciones de comprobación de errores en la instrucción de proceso <?component?>, según se describe en Comprobar errores en archivos de Script Component.

Sugerencia   Para facilitar que la aplicación host conozca las interfaces COM que ha expuesto un componente de secuencia de comandos, el módulo en tiempo de ejecución de componentes de secuencia de comandos puede generar una biblioteca de tipos, que contiene información acerca de las propiedades, métodos y eventos disponibles en el componente de secuencia de comandos. Para obtener más información, consulte Crear una biblioteca de tipos de Script Component.

Crear instancias locales de componentes de secuencia de comandos

Si el componente de secuencia de comandos se instala en el mismo equipo que la aplicación host, puede registrarlo como su propio componente según se describe en Registrar un componente de secuencia de comandos. A continuación, puede utilizar los medios normales de la aplicación host para crear una instancia de objeto, como la función CreateObject. Por ejemplo, para crear una instancia del componente de secuencia de comandos que se ha registrado con el Id. de programa Component.MiComponente en Visual Basic, utilice una instrucción como la siguiente:

Set oComponent = CreateObject("Component.MiComponente")
Nota   Si la aplicación host es Visual Basic y desea controlar los eventos activados por el componente de secuencia de comandos, antes debe enlazar el objeto con la instrucción Dim que incluya la palabra clave WithEvents, como la instrucción siguiente:
Dim WithEvents scMiComponente As MiComponente
Private Sub Command1_Click()
Set scMiComponente=CreateObject("MiComponente")
End Sub
Nota   Para obtener más información, consulte Control de eventos de componentes de secuencia de comandos en la aplicación host. Esto no es necesario si no piensa escribir controladores para los eventos del componente de secuencia de comandos.

En una página Web, puede utilizar la etiqueta <OBJECT> para crear una instancia del componente de secuencia de comandos. Debe conocer el Id. de clase del componente de secuencia de comandos e incluirlo en la etiqueta <OBJECT>, como en el ejemplo siguiente:

<OBJECT
   ID="oComponent"
   CLASSID="clsid:855c8606-49ba-11d2-a428-00c04f8ec80b">
</OBJECT>

Si el componente de secuencia de comandos no está registrado en el equipo local, puede utilizar el moniker de componente de secuencia de comandos para crear una instancia de él. El moniker se amidte en funciones como GetObject. El módulo en tiempo de ejecución, Scrobj.dll, se debe registrar en el equipo local.

Nota   La función GetObject no se admite para componentes de secuencia de comandos en Microsoft® Internet Explorer por motivos de seguridad.

Por ejemplo, la instrucción siguiente muestra cómo llamar a la función GetObject de Visual Basic para crear una instancia de un componente de secuencia de comandos sin registrar:

Set oComponent = GetObject("script:c:\COM\MyComponent.wsc")    

Si el archivo .wsc al que hace referencia el moniker contiene más de un componente de secuencia de comandos, puede especificar de qué componente de secuencia de comandos se debe crear una instancia; para ello, agregue su nombre al nombre de archivo con un carácter # como delimitador. El ejemplo siguiente crea una instancia del componente de secuencia de comandos cuyo Id. es "math" y se encuentra en el archivo MyComponent.wsc:

Set oComponent = GetObject("script:c:\COM\MyComponent.wsc#math")    

El uso de un moniker de dirección URL permite crear una instancia de un componente de secuencia de comandos que se encuentre en otro equipo, como un servidor Web. Utilice una dirección URL completa (con protocolo HTTP) para indicar la ubicación del componente de secuencia de comandos, como en el ejemplo siguiente:

Set oComponent = GetObject("script:http://myserver/MyComponent.wsc")   

Internet Explorer 5.0 admite sintaxis de comportamiento DHTML para crear instancias de componentes de secuencia de comandos, que funciona de forma algo distinta a la sintaxis tradicional para crear instancias de objetos y asegura que el componente de secuencia de comandos no podrá tener acceso a los objetos del sistema potencialmente inseguros. Para ver un ejemplo, consulte "Utilizar componentes de secuencia de comandos de comportamiento DHTML" en el sitio Web de Microsoft Site Builder Network (SBN).

Crear instancias remotas de componentes de secuencia de comandos

Si el atributo remotable del elemento <registration> de un componente de secuencia de comandos se ha establecido como "true,", se puede crear una instancia remota del componente de secuencia de comandos desde el otro equipo que utilice COM distribuido (DCOM).

Ambos equipos deben tener instalado DCOM básico. Un equipo está configurado correctamente si ejecuta:

El propio componente de secuencia de comandos se debe distribuir como se indica a continuación:

Cuando se crea una instancia de un componente de secuencia de comandos remoto, funciona dentro de la aplicación como si fuera un objeto local; se llama a sus métodos y se obtienen y establecen las propiedades de la manera habitual. Sin embargo, la secuencia de comandos del componente de secuencia de comandos remoto se ejecuta en el equipo remoto y tiene acceso a sus recursos (dentro de las limitaciones que imponga la seguridad, etc.). DCOM controla la comunicación entre la aplicación host en el equipo local y el componente de secuencia de comandos del equipo remoto de forma automática e invisible.

Para crear una instancia remota de un componente de secuencia de comandos, llame al método CreateObject y pásele el nombre del equipo remoto como parámetro.

Nota   La capacidad para utilizar CreateObject a fin de crear instancias remotas de componentes de secuencia de comandos requiere Visual Basic 6.0 ó posterior o VBScript 5.0 ó posterior.

El siguiente ejemplo de Visual Basic muestra cómo realizar esto en un equipo llamado "miServidor":

Set newS = CreateObject("Component.MiComponente", "miServidor")   
Nota   Puede haber un ligero retardo cuando se crea una instancia por primera vez de un componente de secuencia de comandos remoto mientras DCOM establece la comunicación entre los equipos.

Consulte también

Crear información de registro | Crear componentes de secuencias de comandos | Cómo funcionan los componentes de secuencias de comandos | Introducción a Windows Script Components | Registrar un componente de secuencia de comandos

Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com.