Cuadros de Mensaje
Iconos
0: Sin icono
16: Parada
32: Pregunta
48: Exclamación
64: Información
Foco
0: Primer botón
256: Segundo botón
512: Tercer botón
Cuadros de Mensaje
Resultado del Cuadro (res = función MsgBox):
1: OK
2: Cancel
3: Abort
4: Retry
5: Ignore
6: Yes
7: No
Ejemplo 6: Hacer un cuadro de mensaje que pregunte si deseamos un viaje al Caribe. El programa debe contestar a cada posibilidad.
Objeto WScript
Permite acceder a argumentos
For each arg in Wscript.Arguments
,,,
Next
Permite control de variables de Entorno
Set sh = CreateObject(“Wscript.Shell”)
Set env = sh.Enviroment(“Process”)
…
texto = env(“PATH”)
env(“PATH”) = “c:/windows”
env.remove(“PATH”)
Objeto WScript
Permite ejecutar otros programas
sh.Run mandato [, estilo] [, espera]
Estilo Ventana
0: Oculta
1: Normal
2: Minimizada
3: Maximizada
4: Normal pero sin foco
6: Minimizada pero sin foco
Espera: True o False
Ejemplo 7: Ejecutar el programa Notepad maximizado.
Interacción de entrada
Caja de entrada
res = InputBox (prompt, [titulo], [defecto], [x], [y])
Si resultado es “”, cancelación de inserción
Ejemplo 8: Ejecutar un acceso a un programa en el que el usuario tenga que indicar su username. Por cada usuario, debe contestar algo distinto. Hay tres usuarios registrados:
“Luis”, “Juan” y “Maria”
Creación de accesos directos
set sh = WScript.CreateObject("WScript.Shell")
set lnk = sh.CreateShortcut(nombre)
…
lnk.save
Path del Escritorio:
path = sh.SpecialFolders("Desktop")
Ejemplo 9: Creación de un acceso directo del Script en el escritorio.
Uso de Sistemas de Fichero y E/S
set fs = WScript.CreateObject(“Scripting.FileSystemObject”)
Acceso a todas las unidades de discos (Ejemplo 10)
set discos = fs.Drives
for each d in discos
…
next
Propiedades de una unidad
if (NOT fs.DriveExists(“H”)) then
Wscript.Quit
else
set drive = fs.GetDrive(“H”)
if (drive.IsReady) then
drive.DriveLetter
drive.DriveType ‘ (Desconocido, Borrable, Duro, Remoto, CD, RAM)
drive.VolumeName (ShareName)
drive.TotalSize
drive.FreeSpace
end if
end if
Uso de Sistemas de Fichero y E/S
Acceso a carpetas
set carpeta = fs.GetFolder (path)
set carpetas = carpeta.SubFolders
for each c in carpetas
…
c.Name
Next
Crear nueva carpeta Set nc = fs.CreateFolder(path)
Renombrar c.Rename(nombre)
Copiar carpeta fs.CopyFolder path1 path2
Mover carpeta fs.MoveFolder path1 path2<
Borrar carpeta fs.DeleteFolder(path)
Existencia Carpeta fs.FolderExists(path)
Uso de Sistemas de Fichero y E/S
Acceso a ficheros
set ficheros = carpeta.Files
for each f in ficheros
…
f.Name
f.Size
f.DateCreated
f.DateLastModified
Next
Ejemplo 11: Mostrar el contenido de la carpeta System
Existencia de fichero fs.FileExists(fichero)
Copiar ficheros fs.CopyFile path1 path2
Borrar ficheros fs.DeleteFile(fichero)
Ejemplo 12: Sistema Backup
Uso de Sistemas de Fichero y E/S
Acceso a un fichero de texto
OpenTextFile(nombre [, modo[, crear[, formato]]] )
Modo: (1) ForReading, (2) ForWriting, (3) ForAppending
Crear: True si se va a crear nuevo. False en caso contrario
Formato: TristateTrue si es Unicode, TristateFalse si es ASCII
Lectura de fichero de texto
set entrada = fs.OpenTextFile(“fichero.txt”)
Do While Not (entrada.atEndOfStream)
Texto = Texto & entrada.ReadLine & vbCrLf
Loop
Escritura (con/sin reemplazo) en fichero
set salida = fs.OpenTextFile(“fichero.txt”, 2, True)
Do While Not (entrada.atEndOfStream)
texto = entrada.ReadLine
salida.WriteLine texto
Loop
Ejemplo 13: Copiar el contenido de un fichero en otro
Control de Red
Objeto “Wscript.Network”
Propiedades:
ComputerName: nombre maquina
UserName: usuario logeado
UserDomain: dominio conectado
Ejercicio 14: Mostrar la informacion del sistema por pantalla.
Control de Red
Añadir Impresora de Red
Nw.AddPrinterConnection [port], LPpath
Eliminar Impresora de Red
Nw.RemovePrinterConnection Name
Listado Impresoras
set impresoras = Nw.EnumPrinterConnections Name
for i = 0 to impresoras.Count – 1 Step 2
puerto = impresoras(i)
nombre = impresoras(i+1)
next
Indicar Impresora Predeterminada
Nw.SetDefaultPrinter Name
Control de Red
Añadir unidades de red
Nw.MapNetWorkDrive unidad path
Listado de unidades de red
set unidades = Nw.EnumNetWorkDrives
for i = 0 to unidades.Count -1 step 2
unidad = unidades(i)
path = unidades(i+1)
next
Ejemplo 15: Crear una unidad de red con una carpeta compartida de tu propia maquina
Control de Windows y otras aplicaciones
Dormir proceso
Manejo de aplicaciones con teclas
Dormir Proceso
Dormir script
Wscript.Sleep milisegundos
Espera de datos, uso de CPU
Para selección de procesos
set sh = Wscript.CreateObject(“Wscript.Shell”)
sh.Run “Calc.exe”, 1
Wscript.Sleep 500
sh.Run “NotePad.exe”, 1
Wcript.Sleep 500
Manejo de aplicaciones con teclas
Uso de teclas
set sh = Wscript.CreateObject
(“Wscript.Shell”)
sh.sendKeys(“teclas”)
Teclas especiales
Manejo de aplicaciones con teclas
Ejemplo 16: Crear un script que ejecute la calculadora, calcule el producto entre 1564 y 54028 y luego se cierre automaticamente (Alt+F4)
Manejo de aplicaciones con teclas
Paso de un proceso a otro
sh.AppActivate titulo
Titulo: Titulo actual de la aplicación
Titulo:
“Documento – WordPad”
Manejo de aplicaciones con teclas
Ejemplo 17: Crear un Script que ejecute el notepad y el wordpad, escriba una frase en notepad, la copie y pegue en wordpad
Conclusiones
Muy sencillo de programar
Muy sencillo de ejecutar
Muy útil
Muy cómodo
Puede llegar a ser complejo
Es muy parecido al resto de lenguajes de programación
Página anterior | Volver al principio del trabajo | Página siguiente |