SlideShare una empresa de Scribd logo
1 de 6
Descargar para leer sin conexión
Tutorial básico de vbscript (Parte 5)                                                          Noviembre 2008

                                                      CommonDialog

El objeto commondialog sirve para mostrar un mensaje de abrir/guardar como. En mi caso particularmente no hago
uso de este objeto, pero puede resultar últil para quienes quieran agregar un poco más de interactividad a sus
scripts, y de cierto modo, hacer más sencillo el uso de este para el “usuario final”.

Para el uso de esta ventana, solo será necesario pasarle ciertos parámetros para hacer uso de la misma,
inicializandolo por medio de useraccounts.commondialog.

Nota: Este objeto solo se encuentra presente en Win XP, no antes, y en Vista se he eliminadoexiste otro objeto que
se inicia con mscomdlg.commondialog, y que cumple una función similar pero con más opciones, pero este último,
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, podremos mostrala por medio de la función Showopen y
obtendremos la ruta por medio de Filename

El primero de los parámetros, Filter, hace referencia a los tipos de archivos que van a aparecer en el cuadro.

Filterindex determina cual de los tipos de archivos seleccionados (Filter) son los que van a aprecer por defecto.

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)

Dado que este objeto es de fácil utilización, pasaré directamente a un ejemplo, donde explicaré un poco mejor cada
uno de estos parámetros.

Ejemplo:

Set objdialog = createobject("useraccounts.commondialog")
objdialog.filter = "VBScript|*.vbs|Javascript|*.js"
objdialog.filterindex = 1
objdialog.initialdir = "C:Documents and SettingsNovlucker"
odresp = objdialog.showopen
If odresp = -1 then
Msgbox objdialog.filename
End If



     by Novlucker                                                                                                       1
Tutorial básico de vbscript (Parte 5)                                                     Noviembre 2008

El resultado:




Pasemos ahora a repasar cada una de las opciones que hemos pasado.

objdialog.filter = “VBScript|*.vbs|Javascript|*.js”

Como había comentado, a través de los filtros, podremos determinar, cuales serán los tipos de archivos que
aparecerán al visualizar los diferentes archivos de una carpeta. En el ejemplo, he puesto archivos vbscript, y
javascripts.

El “tipo de archivo” en palabra (VBScript y Javascript) no hace ningún tipo de diferencia, sino que se trata
simplemente de lo que servirá como referencia para el usuario, es decir, podríamos poner cualquier cosa y el
resultado final sería el mismo, como ejemplo:

objdialog.filter = “Archivos vbs|*.vbs|Archivos javascript|*.js”

Lo que si hace la diferencia, es el asterísco seguido de la extensión del archivo que se mostrará, para el ejemplo,
*.vbs, y *.js. Para el caso de querer establecer “todos los archivos”, se utilizará algo del estilo “All Files|*.*”

Notese además que cada uno de estos valores va separado del siguiente, por medio de un simbolo “pipe”
(generalmente utilizado en distintos lenguajes para la canalización de órdenes)




     by Novlucker                                                                                                2
Tutorial básico de vbscript (Parte 5)                                                         Noviembre 2008

Como habíamos dichio antes Filterindex determina el tipo de archivo por defecto que será mostrado, en este caso
he elegido el index 1, que en el Filter serían los archivos vbs, de haberse elegido 2, lo que se mostraría primero sería
javascript y no vbs.

objdialog.initialdir = “C:Documents and SettingsNovlucker”

Como había dicho antes, initialdir establece el directorio en el cual se “abrirá” nuestra ventana, en este caso he
establecido el directorio “C:Documents and SettingsNovlucker”, y como se puede apreciar en la imagen, esto es lo
que se ha mostrado en la ventana, claro está que igualmente se podrá “subir” partiendo de este.

Con esto básicamente establecemos las opciones básicas de nuestra ventana, para luego mostrarla en la línea
siguiente.

odresp = objdialog.showopen

Como se puede ver, he asignado la “respuesta” de este elemento a la variable odresp, lo cual es totalmente
opcional (podría hacerse sin el “odresp =”), pero nos permitirá determinar de manera más exacta, que es lo que pasa
con nuestra ventana, ya que esta variable podrá tener dos valores según el usuario elija algún archivo y de a
ACEPTAR (valor -1), o bien no seleccione ninguno y presione CANCELAR (valor 0). 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, en
caso de haberse elegido un archivo, mostramos su ruta (filename).

Luego de accedido a la ruta del archivo en cuestión, es decisión nuestra lo que se haga con esta ruta, ya sea copiar,
mover, abrir, etc, siempre dentro de las posibilidades de vbs claro está.

Cual es la limitación de esta ventana así como está? Que no es posible la selección de múltiples archivos, sino que
siempre se nos permitirá elegir uno y solo uno de todos los que aparecen.

Para solucionar esto utilizaremos el parámetro flags, el cual entre otras opciones controla la posibilidad de mostrar
un cuadro como el que necesitamos (se tratará solamente esta, aunque existen muchas otras).

Para esto, se pasará &H0200 como valor a este parámetro (siguiendo con el ejemplo anterior):

Ejemplo:

Set objdialog = createobject("useraccounts.commondialog")

objdialog.filter = "VBScript|*.vbs|Javascript|*.js"

objdialog.filterindex = 1

objdialog.flags = &H0200

objdialog.initialdir = "C:Documents and SettingsNovlucker"

odresp = objdialog.showopen




     by Novlucker                                                                                                     3
Tutorial básico de vbscript (Parte 5)                                                     Noviembre 2008



El resultado:




Como se puede ver, el aspecto de nuestra ventana ha cambiado, es un poco más “rústica”, pero igualmente cumple
la misma función.

La particularidad de los datos que nos devuelve esta ventana con respecto a la anterior, es que dado que se
seleccionan múltiples archivos, esta nos devolverá todos los valores en una misma cadena, partiendo del ejemplo
anterior, en el caso de haber elegido los archivos “Script1.vbs” y “Script2.vbs”, el resultado sería el siguiente:




C:DOCUME~1NOVLUC~1Script1.vbs Script2.vbs

En la imagen se ve claramente como las rutas de ambos archivos que hemos seleccionado aparecen en una misma
cadena, además de que dichas rutas se muestran en formato “corto”. Pero si miramos detenidamente, podemos ver
que cada una de estas rutas, esta separada por un espacio, donde la primera parte contiene la ruta a la carpeta
contenedora, y el resto son los archivos en cuestión.
Habiendo visto esto entonces, podremos escribir un método para crear facilmente las rutas a estos archivos, para lo
cual haremos uso de la función split.
Split es una función de vbs que no hace más que “cortar” una determinada cadena, tomando como separador el/los
caractéres que le indiquemos, y guarda en un array cada una de las partes de dicha cadena.



     by Novlucker                                                                                                4
Tutorial básico de vbscript (Parte 5)                                                          Noviembre 2008



Ejemplo:
CadenaTexto = "1;2;3;4;5"

CTtoAray = split(CadenaTexto,";")                        'Cortamos la cadena con ; como separador

For each C in CTtoAray

Msgbox C

Next

Como se puede ver en el ejemplo, con una cadena definida, hemos cortado esta cadena utilizando split, y hemos
guardado cada uno de los valores dentro de un array para luego acceder del modo tradicional.
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, los archivos son mostrados en una única cadena pero separados por espacios, por lo que para
poder obtener las rutas simplemente deberemos utilizar la anterior función, pero utilizando como separador, no una
cadena, sino un espacio.
Una vez más siguendo con el ejemplo anterior, el proceso sería más o menos así:


Set objdialog = createobject("useraccounts.commondialog")

objdialog.filter = "VBScript|*.vbs|Javascript|*.js"

objdialog.filterindex = 1

objdialog.flags = &H0200

objdialog.initialdir = "C:Documents and SettingsNovlucker"

odresp = objdialog.showopen
Rutas = objdialog.filename

Arutas = split(Rutas, " ")                       '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, 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, ya que de no hacer así lo único que obtendríamos sería nombres de archivos
sueltos, y nos sus rutas.

Durante el proceso he utilizado la función Ubound (upper), 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


       by Novlucker                                                                                                       5
Tutorial básico de vbscript (Parte 5)                                                       Noviembre 2008



El resultado:




En definitiva, justamente lo que estabamos buscando.




Y bueno así termina una nueva parte de este tutorial, en este caso con la explicación de un objeto que como he
dicho, particularmente no lo utilizo, pero seguro a más de uno le parecerá interesante para hacer más didácticos sus
scripts.




     by Novlucker                                                                                                  6

Más contenido relacionado

La actualidad más candente

IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual Coswchavez
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc X
 
How to Think Like a Computer Scientist
How to Think Like a Computer ScientistHow to Think Like a Computer Scientist
How to Think Like a Computer Scientistjoanem28
 
13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con ConstantesJosé M. Padilla
 
Slides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y buclesSlides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y buclesmatlab_usc
 
Comandos de java
Comandos de javaComandos de java
Comandos de javaMarthaa Hdz
 
Ocho cosas que debes saber de JavaScript
Ocho cosas que debes saber de JavaScriptOcho cosas que debes saber de JavaScript
Ocho cosas que debes saber de JavaScriptDavid Ballén
 
Taller envio de sms por código 2012
Taller envio de sms por código 2012Taller envio de sms por código 2012
Taller envio de sms por código 2012Orlando Barcia
 
Estructuras sintácticas de los lenguaje
Estructuras sintácticas de los lenguajeEstructuras sintácticas de los lenguaje
Estructuras sintácticas de los lenguajeMaru Ostos
 

La actualidad más candente (20)

IntroduccióN A Visual C
IntroduccióN A Visual CIntroduccióN A Visual C
IntroduccióN A Visual C
 
Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)Jyoc java-cap04 vectores (arrays)
Jyoc java-cap04 vectores (arrays)
 
How to Think Like a Computer Scientist
How to Think Like a Computer ScientistHow to Think Like a Computer Scientist
How to Think Like a Computer Scientist
 
13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes13 PHP. Un Ejemplo Con Constantes
13 PHP. Un Ejemplo Con Constantes
 
Slides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y buclesSlides sesion8 matlab - IF y bucles
Slides sesion8 matlab - IF y bucles
 
LibreríAs De Java
LibreríAs De JavaLibreríAs De Java
LibreríAs De Java
 
Comandos de java
Comandos de javaComandos de java
Comandos de java
 
Lenguaje c tarea 5
Lenguaje c tarea 5Lenguaje c tarea 5
Lenguaje c tarea 5
 
Ocho cosas que debes saber de JavaScript
Ocho cosas que debes saber de JavaScriptOcho cosas que debes saber de JavaScript
Ocho cosas que debes saber de JavaScript
 
Java básico
Java  básicoJava  básico
Java básico
 
Codigo
CodigoCodigo
Codigo
 
Taller envio de sms por código 2012
Taller envio de sms por código 2012Taller envio de sms por código 2012
Taller envio de sms por código 2012
 
PRESENTACION
PRESENTACIONPRESENTACION
PRESENTACION
 
Estructuras sintácticas de los lenguaje
Estructuras sintácticas de los lenguajeEstructuras sintácticas de los lenguaje
Estructuras sintácticas de los lenguaje
 
Funciones
FuncionesFunciones
Funciones
 
39 Php. Bucles While
39 Php. Bucles While39 Php. Bucles While
39 Php. Bucles While
 
Greenfoot 5
Greenfoot 5Greenfoot 5
Greenfoot 5
 
Manual.es
Manual.esManual.es
Manual.es
 
Cadenas
CadenasCadenas
Cadenas
 
Comandos de Java
Comandos de JavaComandos de Java
Comandos de Java
 

Destacado

Quantum Matter Paper_05QM03-1329
Quantum Matter Paper_05QM03-1329Quantum Matter Paper_05QM03-1329
Quantum Matter Paper_05QM03-1329Aniruddha Mukherjee
 
PhuongDang Resume D5
PhuongDang Resume D5PhuongDang Resume D5
PhuongDang Resume D5Phuong Dang
 
From School library to learning centre to… What are the challenges in the fut...
From School library to learning centre to… What are the challenges in the fut...From School library to learning centre to… What are the challenges in the fut...
From School library to learning centre to… What are the challenges in the fut...Slamit
 
Top Quotes for mothers day
Top Quotes for mothers dayTop Quotes for mothers day
Top Quotes for mothers daydhavalpatel22993
 
SMAU Napoli 2016 invito Offerto da NAStartUp
SMAU Napoli 2016 invito Offerto da NAStartUpSMAU Napoli 2016 invito Offerto da NAStartUp
SMAU Napoli 2016 invito Offerto da NAStartUpAntonio Prigiobbo
 
Supply & Demand: Making the Case for Less Content (and Big Impact)
Supply & Demand: Making the Case for Less Content (and Big Impact)Supply & Demand: Making the Case for Less Content (and Big Impact)
Supply & Demand: Making the Case for Less Content (and Big Impact)Uberflip
 
Microsoft Excel 2016 - Apêndices
Microsoft Excel 2016 - ApêndicesMicrosoft Excel 2016 - Apêndices
Microsoft Excel 2016 - ApêndicesPaulo André Jesus
 
Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...
Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...
Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...IOSR Journals
 
Mindful champion(owls bennett)
Mindful champion(owls bennett)Mindful champion(owls bennett)
Mindful champion(owls bennett)Joel Bennett
 

Destacado (13)

Mike Stoever_Ecology IRP
Mike Stoever_Ecology IRPMike Stoever_Ecology IRP
Mike Stoever_Ecology IRP
 
Quantum Matter Paper_05QM03-1329
Quantum Matter Paper_05QM03-1329Quantum Matter Paper_05QM03-1329
Quantum Matter Paper_05QM03-1329
 
Xiiicavt velocidad máximaautopista
Xiiicavt velocidad máximaautopistaXiiicavt velocidad máximaautopista
Xiiicavt velocidad máximaautopista
 
PhuongDang Resume D5
PhuongDang Resume D5PhuongDang Resume D5
PhuongDang Resume D5
 
From School library to learning centre to… What are the challenges in the fut...
From School library to learning centre to… What are the challenges in the fut...From School library to learning centre to… What are the challenges in the fut...
From School library to learning centre to… What are the challenges in the fut...
 
Top Quotes for mothers day
Top Quotes for mothers dayTop Quotes for mothers day
Top Quotes for mothers day
 
SMAU Napoli 2016 invito Offerto da NAStartUp
SMAU Napoli 2016 invito Offerto da NAStartUpSMAU Napoli 2016 invito Offerto da NAStartUp
SMAU Napoli 2016 invito Offerto da NAStartUp
 
Supply & Demand: Making the Case for Less Content (and Big Impact)
Supply & Demand: Making the Case for Less Content (and Big Impact)Supply & Demand: Making the Case for Less Content (and Big Impact)
Supply & Demand: Making the Case for Less Content (and Big Impact)
 
Production schedule
Production scheduleProduction schedule
Production schedule
 
Band saw
Band sawBand saw
Band saw
 
Microsoft Excel 2016 - Apêndices
Microsoft Excel 2016 - ApêndicesMicrosoft Excel 2016 - Apêndices
Microsoft Excel 2016 - Apêndices
 
Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...
Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...
Preparation and Structural Properties of Aluminium Substituted Lithium Nano F...
 
Mindful champion(owls bennett)
Mindful champion(owls bennett)Mindful champion(owls bennett)
Mindful champion(owls bennett)
 

Similar a Tutorial vbscript commondialog (20)

(86)resumen visual basic
(86)resumen visual basic(86)resumen visual basic
(86)resumen visual basic
 
Java script
Java scriptJava script
Java script
 
Comandos vb
Comandos vbComandos vb
Comandos vb
 
Temas programacion java_3
Temas programacion java_3Temas programacion java_3
Temas programacion java_3
 
Java con Base de Datos
Java con Base de Datos Java con Base de Datos
Java con Base de Datos
 
Conexión a postgres desde
Conexión a postgres desdeConexión a postgres desde
Conexión a postgres desde
 
Conexión de Base de Datos
Conexión de Base de DatosConexión de Base de Datos
Conexión de Base de Datos
 
Guía herramientas de BD PHP
Guía herramientas de BD PHPGuía herramientas de BD PHP
Guía herramientas de BD PHP
 
PresentacióN1
PresentacióN1PresentacióN1
PresentacióN1
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Cplus
CplusCplus
Cplus
 
CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)CREACION DE DLL Y USO (Ejemplo desarrollado)
CREACION DE DLL Y USO (Ejemplo desarrollado)
 
1 -programacion_oo
1  -programacion_oo1  -programacion_oo
1 -programacion_oo
 
Guia herramientas de bd
Guia herramientas de bdGuia herramientas de bd
Guia herramientas de bd
 
My Sql A C#
My Sql A C#My Sql A C#
My Sql A C#
 
My Sql A C#
My Sql A C#My Sql A C#
My Sql A C#
 
Tema 9 aplicaciones de dos capas por gio
Tema 9   aplicaciones de dos capas por gioTema 9   aplicaciones de dos capas por gio
Tema 9 aplicaciones de dos capas por gio
 
Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)Traduccion capitulo 9 (completo)
Traduccion capitulo 9 (completo)
 
Bases de datos con java
Bases de datos con javaBases de datos con java
Bases de datos con java
 

Último

Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdfsharitcalderon04
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar24roberto21
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armadob7fwtwtfxf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxhasbleidit
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadEduardoSantiagoSegov
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersIván López Martín
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDAVIDROBERTOGALLEGOS
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosAlbanyMartinez7
 

Último (20)

Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Análisis de Artefactos Tecnologicos (3) (1).pdf
Análisis de Artefactos Tecnologicos  (3) (1).pdfAnálisis de Artefactos Tecnologicos  (3) (1).pdf
Análisis de Artefactos Tecnologicos (3) (1).pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Actividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolarActividades de computación para alumnos de preescolar
Actividades de computación para alumnos de preescolar
 
Viguetas Pretensadas en concreto armado
Viguetas Pretensadas  en concreto armadoViguetas Pretensadas  en concreto armado
Viguetas Pretensadas en concreto armado
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docxPLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
PLANEACION DE CLASES TEMA TIPOS DE FAMILIA.docx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
La tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedadLa tecnología y su impacto en la sociedad
La tecnología y su impacto en la sociedad
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
CommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 TestcontainersCommitConf 2024 - Spring Boot <3 Testcontainers
CommitConf 2024 - Spring Boot <3 Testcontainers
 
David_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptxDavid_Gallegos - tarea de la sesión 11.pptx
David_Gallegos - tarea de la sesión 11.pptx
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
El camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVPEl camino a convertirse en Microsoft MVP
El camino a convertirse en Microsoft MVP
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Documentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos JuridicosDocumentacion Electrónica en Actos Juridicos
Documentacion Electrónica en Actos Juridicos
 

Tutorial vbscript commondialog

  • 1. Tutorial básico de vbscript (Parte 5) Noviembre 2008 CommonDialog El objeto commondialog sirve para mostrar un mensaje de abrir/guardar como. En mi caso particularmente no hago uso de este objeto, pero puede resultar últil para quienes quieran agregar un poco más de interactividad a sus scripts, y de cierto modo, hacer más sencillo el uso de este para el “usuario final”. Para el uso de esta ventana, solo será necesario pasarle ciertos parámetros para hacer uso de la misma, inicializandolo por medio de useraccounts.commondialog. Nota: Este objeto solo se encuentra presente en Win XP, no antes, y en Vista se he eliminadoexiste otro objeto que se inicia con mscomdlg.commondialog, y que cumple una función similar pero con más opciones, pero este último, 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, podremos mostrala por medio de la función Showopen y obtendremos la ruta por medio de Filename El primero de los parámetros, Filter, hace referencia a los tipos de archivos que van a aparecer en el cuadro. Filterindex determina cual de los tipos de archivos seleccionados (Filter) son los que van a aprecer por defecto. 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) Dado que este objeto es de fácil utilización, pasaré directamente a un ejemplo, donde explicaré un poco mejor cada uno de estos parámetros. Ejemplo: Set objdialog = createobject("useraccounts.commondialog") objdialog.filter = "VBScript|*.vbs|Javascript|*.js" objdialog.filterindex = 1 objdialog.initialdir = "C:Documents and SettingsNovlucker" odresp = objdialog.showopen If odresp = -1 then Msgbox objdialog.filename End If by Novlucker 1
  • 2. Tutorial básico de vbscript (Parte 5) Noviembre 2008 El resultado: Pasemos ahora a repasar cada una de las opciones que hemos pasado. objdialog.filter = “VBScript|*.vbs|Javascript|*.js” Como había comentado, a través de los filtros, podremos determinar, cuales serán los tipos de archivos que aparecerán al visualizar los diferentes archivos de una carpeta. En el ejemplo, he puesto archivos vbscript, y javascripts. El “tipo de archivo” en palabra (VBScript y Javascript) no hace ningún tipo de diferencia, sino que se trata simplemente de lo que servirá como referencia para el usuario, es decir, podríamos poner cualquier cosa y el resultado final sería el mismo, como ejemplo: objdialog.filter = “Archivos vbs|*.vbs|Archivos javascript|*.js” Lo que si hace la diferencia, es el asterísco seguido de la extensión del archivo que se mostrará, para el ejemplo, *.vbs, y *.js. Para el caso de querer establecer “todos los archivos”, se utilizará algo del estilo “All Files|*.*” Notese además que cada uno de estos valores va separado del siguiente, por medio de un simbolo “pipe” (generalmente utilizado en distintos lenguajes para la canalización de órdenes) by Novlucker 2
  • 3. Tutorial básico de vbscript (Parte 5) Noviembre 2008 Como habíamos dichio antes Filterindex determina el tipo de archivo por defecto que será mostrado, en este caso he elegido el index 1, que en el Filter serían los archivos vbs, de haberse elegido 2, lo que se mostraría primero sería javascript y no vbs. objdialog.initialdir = “C:Documents and SettingsNovlucker” Como había dicho antes, initialdir establece el directorio en el cual se “abrirá” nuestra ventana, en este caso he establecido el directorio “C:Documents and SettingsNovlucker”, y como se puede apreciar en la imagen, esto es lo que se ha mostrado en la ventana, claro está que igualmente se podrá “subir” partiendo de este. Con esto básicamente establecemos las opciones básicas de nuestra ventana, para luego mostrarla en la línea siguiente. odresp = objdialog.showopen Como se puede ver, he asignado la “respuesta” de este elemento a la variable odresp, lo cual es totalmente opcional (podría hacerse sin el “odresp =”), pero nos permitirá determinar de manera más exacta, que es lo que pasa con nuestra ventana, ya que esta variable podrá tener dos valores según el usuario elija algún archivo y de a ACEPTAR (valor -1), o bien no seleccione ninguno y presione CANCELAR (valor 0). 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, en caso de haberse elegido un archivo, mostramos su ruta (filename). Luego de accedido a la ruta del archivo en cuestión, es decisión nuestra lo que se haga con esta ruta, ya sea copiar, mover, abrir, etc, siempre dentro de las posibilidades de vbs claro está. Cual es la limitación de esta ventana así como está? Que no es posible la selección de múltiples archivos, sino que siempre se nos permitirá elegir uno y solo uno de todos los que aparecen. Para solucionar esto utilizaremos el parámetro flags, el cual entre otras opciones controla la posibilidad de mostrar un cuadro como el que necesitamos (se tratará solamente esta, aunque existen muchas otras). Para esto, se pasará &H0200 como valor a este parámetro (siguiendo con el ejemplo anterior): Ejemplo: Set objdialog = createobject("useraccounts.commondialog") objdialog.filter = "VBScript|*.vbs|Javascript|*.js" objdialog.filterindex = 1 objdialog.flags = &H0200 objdialog.initialdir = "C:Documents and SettingsNovlucker" odresp = objdialog.showopen by Novlucker 3
  • 4. Tutorial básico de vbscript (Parte 5) Noviembre 2008 El resultado: Como se puede ver, el aspecto de nuestra ventana ha cambiado, es un poco más “rústica”, pero igualmente cumple la misma función. La particularidad de los datos que nos devuelve esta ventana con respecto a la anterior, es que dado que se seleccionan múltiples archivos, esta nos devolverá todos los valores en una misma cadena, partiendo del ejemplo anterior, en el caso de haber elegido los archivos “Script1.vbs” y “Script2.vbs”, el resultado sería el siguiente: C:DOCUME~1NOVLUC~1Script1.vbs Script2.vbs En la imagen se ve claramente como las rutas de ambos archivos que hemos seleccionado aparecen en una misma cadena, además de que dichas rutas se muestran en formato “corto”. Pero si miramos detenidamente, podemos ver que cada una de estas rutas, esta separada por un espacio, donde la primera parte contiene la ruta a la carpeta contenedora, y el resto son los archivos en cuestión. Habiendo visto esto entonces, podremos escribir un método para crear facilmente las rutas a estos archivos, para lo cual haremos uso de la función split. Split es una función de vbs que no hace más que “cortar” una determinada cadena, tomando como separador el/los caractéres que le indiquemos, y guarda en un array cada una de las partes de dicha cadena. by Novlucker 4
  • 5. Tutorial básico de vbscript (Parte 5) Noviembre 2008 Ejemplo: CadenaTexto = "1;2;3;4;5" CTtoAray = split(CadenaTexto,";") 'Cortamos la cadena con ; como separador For each C in CTtoAray Msgbox C Next Como se puede ver en el ejemplo, con una cadena definida, hemos cortado esta cadena utilizando split, y hemos guardado cada uno de los valores dentro de un array para luego acceder del modo tradicional. 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, los archivos son mostrados en una única cadena pero separados por espacios, por lo que para poder obtener las rutas simplemente deberemos utilizar la anterior función, pero utilizando como separador, no una cadena, sino un espacio. Una vez más siguendo con el ejemplo anterior, el proceso sería más o menos así: Set objdialog = createobject("useraccounts.commondialog") objdialog.filter = "VBScript|*.vbs|Javascript|*.js" objdialog.filterindex = 1 objdialog.flags = &H0200 objdialog.initialdir = "C:Documents and SettingsNovlucker" odresp = objdialog.showopen Rutas = objdialog.filename Arutas = split(Rutas, " ") '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, 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, ya que de no hacer así lo único que obtendríamos sería nombres de archivos sueltos, y nos sus rutas. Durante el proceso he utilizado la función Ubound (upper), 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 by Novlucker 5
  • 6. Tutorial básico de vbscript (Parte 5) Noviembre 2008 El resultado: En definitiva, justamente lo que estabamos buscando. Y bueno así termina una nueva parte de este tutorial, en este caso con la explicación de un objeto que como he dicho, particularmente no lo utilizo, pero seguro a más de uno le parecerá interesante para hacer más didácticos sus scripts. by Novlucker 6