Cómo automatizar el Asistente para grabación de CD en WinXP
Muchas veces nos hemos preguntado cómo automatizar las tareas de grabación en CD o cómo hacer que la herramienta de copia de seguridad nativa de WinXP, NTBACKUP, vuelque nuestras copias a un CD. Pues bien, con este tip vamos a poder automatizar esta tarea pudiendo copiar nuestros archivos en cualquier carpeta de nuestra elección para posteriormente grabarlo a un CD sin necesidad de interactuar para nada con el Asistente de Grabación de CD nativo de Windows XP.
El script que expongo a continuación únicamente requiere modificar tres variables
- MyCDRW, que corresponde a la letra de la unidad de nuestra grabadora
- MySource, que corresponde al directorio o ruta completa de la carpeta a grabar. Debemos especificar la ruta exacta y esta debe existir en nuestro PC. El script está preparado para incluir las subcarpetas o subdirectorios que se encuentren en esa ruta
- MyCDNAME, el nombre que le queramos poner a nuestra grabación, el script agrega la fecha de nuestra copia automáticamente al CD
Para ejecutar el script únicamente se requiere que copiéis todo el texto en color rojo que va entre líneas y pegarlo en el bloc de notas, a continuación lo guardáis con un nombre de vuestra elección y extensión VBS. Para ejecutarlo sólo tenéis que hacer doble click sobre el mismo.
Option Explicit
Dim MyCDRW, MySource, MyCDNAME, MyDateCode, MyTarget
Dim oShell, oApp, oFolder, vbShort
' Cambia estas tres variables acorde a las especificaciones de tu sistema
MyCDRW = "G:\"</span></p> <p class="MsoNormal" style="font-family: courier new,courier,monospace; color: #ff0000;">MySource = "E:\Documents and Settings\fermu.MAQUINA.000\Mis documentos\2005"
MyCDName = "MyDocs"
' A partir de aqui mejor no tocar nada
Set oShell = WScript.CreateObject("WScript.Shell")
Set oApp = CreateObject("Shell.Application")
MyTarget = oShell.regread _
("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\CD Burning")
Set oFolder = oApp.Namespace(MySource)
oApp.Namespace(MyTarget).CopyHere oFolder.Items
oApp.NameSpace(&H11).ParseName(MyCDRW).InvokeVerbEx _
"Grabar estos arc&hivos en un CD"
Do until oShell.appactivate("Asistente para grabación de CD")
wscript.sleep 500
Loop
MyDateCode = mid(formatDateTime(Date, vbshort),9,2) & _
mid(formatDateTime(Date, vbshort),4,2) & _
left(formatDateTime(Date,vbshort),2)
oShell.appactivate("Asistente para grabación de CD")
oShell.SendKeys MyCDName & " " & MyDateCode
oShell.appactivate("Asistente para grabación de CD")
oShell.SendKeys "{Enter}"
Do until Not oShell.appactivate("Asistente para grabación de CD")
wscript.sleep 500
Loop
Set oApp = Nothing
Set oFolder = Nothing
Set oShell = Nothing
Obviamente podemos agregar la ejecución del script a las tareas programadas para llevar a cabo el proceso en el momento en el que nosotros deseemos. Eso es todo, ya sabeis que estaremos encantados de responder cualquier duda que tengáis sobre el presente artículo en nuestro foro.
--
Fernando Muñoz
MS MVP Windows Shell / User



