El Blog de Gualtrysoft

Windows 2000/2003/2008, Active Directory, VBScript, Hyper-V, PowerShell y todo aquello interesante a la hora de usar, configurar y administrar Windows Server. También tenemos longanizas…

Script VBScript Para Establecer La Velocidad De Presentación Del Visor De Imágenes Y Fax De Windows

Posted by urpiano en Viernes 25 \25\UTC mayo \25\UTC 2007

Script VBScript que permite cambiar la velocidad a que se efectúa una presentación de diapositivas del Visor de imágenes y Fax de Windows.

Sintaxis

cscript [//nologo] cambiar-tiempo-presentacion.vbs [/?] s

Siendo

Parámetro ¿Requerido? Descripción
/? No
Muestra la ayuda en línea.
comando No
Tiempo en segundos que transcurre entre image e imagen. En el caso de que se omita se le solicitará al usuario que lo entre en una InputBox. Si el valor introducido en la InputBox o suministrado como parámetro es menor o igual que cero, el script se interrumpe. En caso de que el usuario deje vacía la InputBox o pulse a cancelar, el script será finalizado.

Ejemplos

– Al usuario se le pide que entre los segundos entre imagen e imagen:

    cscript cambiar-tiempo-presentacion.vbs

– Se establece el tiempo en 15 segundos

    cscript //nologo cambiar-tiempo-presentacion.vbs 15

Nota:

Para que los cambios sean efectivos, es necesario que se cierre la carpeta desde la que se lanzó el visor, se vuelva a abrir y se lance de nuevo el visor.

Este es el código del script:

'cambiar-tiempo-presentacion.vbs
'
'Script VBScript que permite cambiar la velocidad a
'que se efectúa una presentación de diapositivas
'del Visor de imágenes y Fax de Windows
'
'Sintaxis:
'
'cscript [//nologo] cambiar-tiempo-presentacion.vbs [s]
'        [/?]
'
'Siendo
'
'    - s: parámetro opcional que expresa el tiempo en
'         segundos que transcurre entre image e imagen.
'         En el caso de que se omita se le solicitará
'         al usuario que lo entre en una InputBox. Si
'         el valor introducido en la InputBox o 
'         suministrado como parámetro es menor o igual
'         que cero, el script se interrumpe. En caso
'         de que el usuario deje vacía la InputBox o
'         pulse a cancelar, el script será finalizado.
'
'    - ?: parámetro opcional. Muestra la ayuda en línea
'
'Ejemplos:
'
'- Al usuario se le pide que entre los segundos entre imagen
'  e imagen:
'
'    cscript cambiar-tiempo-presentacion.vbs
'    
'- Se establece el tiempo en 15 segundos
'
'    cscript //nologo cambiar-tiempo-presentacion.vbs 15
'
'Nota:
'
'Para que los cambios sean efectivos, es necesario que se
'cierre la carpeta desde la que se lanzó el visor, se
'vuelva a abrir y se lance de nuevo el visor.
'
'© Fernando Reyes, Mayo de 2007

Option Explicit

Dim obj_SH, str_Clave, int_Segundos

'On Error Resume Next

Set obj_SH = CreateObject("Wscript.Shell")

'Si hay que mostrar la ayuda
If WScript.Arguments.Named.Exists("?") Then

    Call s_Ayuda("**********************" & vbCrLf & _
                 "*        AYUDA       *" & vbCrLf & _
                 "**********************")
    WScript.Quit 0
    
End if

'El usuario no ha pasado el argumento del número de
'segundos
If Not WScript.Arguments.Count > 0 Then

    'Se le solicita que lo entre por medio de una InputBox
    int_Segundos = InputBox("Entre " & _
                   "el número de segundos entre" & _
                   " imagen e imagen en la pres" & _
                   "entación de diapositivas de" & _
                   "l Visor de imágenes y fax d" & _
                   "e Windows.", "Cambio de la " & _
                   "velocidad de presentación",5)
    
    'Si el usuario no ha pasado nada...
    If int_Segundos = "" Then
    
        'Damos por cancelada la ejecución
        call s_Ayuda("Acción cancelada por el usuario")
        WScript.Quit 1
        
    End If
    
'Sí se ha pasado el tiempo como parámetro; lo 
'almacenamos
Else
    
    int_Segundos = WScript.Arguments(0)
    
End If

'En caso de no ser numérico o de ser menor o igual 
'que cero, avisamos al usuario y terminamos el script
If Not IsNumeric(int_Segundos) Then

    Call s_Ayuda("Error 2: el valor de tiempo pasado " & _
                 "no es un valor numérico.")
    WScript.Quit 2

End If   
    
If Not int_Segundos > 0 Then

    Call s_Ayuda("Error 3: el valor de tiempo pasado " & _
                 "no es válido; debe ser un núme" & _
                 "ro superior a cero.")
    WScript.Quit 3

End If

'Establecemos la clave a crear
str_Clave = "HKCU\Software\Microsoft\Windows\C" & _
            "urrentVersion\Explorer\ShellImageView"

'La creamos
obj_SH.RegWrite str_Clave, ""

'Establecemos el valor
str_Clave = str_Clave & "Timeout"

'Lo creamos. El contenido de este valor del registro
'está expresado en milisegundos, por tanto multiplicamos
'por mil los segundos
obj_SH.RegWrite str_Clave, int_Segundos * 1000, "REG_DWORD"

WScript.Echo "Tiempo entre imágenes en una presentació" & _
             "n del Visor de imágenes y fax de Windows" & _
             " establecido en " & int_Segundos & " seg" & _
             "undos."
             
WScript.Quit 0

Sub s_Ayuda(str_Error)

    
    WScript.Echo str_Error
    WScript.Echo ""
    WScript.Echo ""
    WScript.Echo "cambiar-tiempo-presentacion.vbs"
    WScript.Echo ""
    WScript.Echo "Script VBScript que permite cam" & _
                 "biar la velocidad a"
    WScript.Echo "que se efectúa una presentación" & _
                 " de diapositivas"
    WScript.Echo "del Visor de imágenes y Fax de " & _
                 "Windows"
    WScript.Echo ""
    WScript.Echo "Sintaxis:"
    WScript.Echo ""
    WScript.Echo "cscript [//nologo] cambiar-tiem" & _
                 "po-presentacion.vbs [s]"
    WScript.Echo ""
    WScript.Echo "Siendo"
    WScript.Echo ""
    WScript.Echo "    - s: parámetro opciona que " & _
                 "expresa el tiempo en"
    WScript.Echo "         segundos que transcurr" & _
                 "e entre image e imagen."
    WScript.Echo "         En el caso de que se o" & _
                 "mita se le solicitará"
    WScript.Echo "         al usuario que lo entr" & _
                 "e en una InputBox. Si"
    WScript.Echo "         el valor introducido e" & _
                 "n la InputBox o "
    WScript.Echo "         suministrado como pará" & _
                 "metro es menor o igual"
    WScript.Echo "         que cero, el script se" & _
                 " interrumpe. En caso"
    WScript.Echo "         de que el usuario deje" & _
                 " vacía la InputBox o"
    WScript.Echo "         pulse a cancelar, el s" & _
                 "cript será finalizado."
    WScript.Echo ""
    WScript.Echo "    - ?: parámetro opcional. Mu" & _
                 "estra la ayuda en línea"
    WScript.Echo ""
    WScript.Echo "Ejemplos:"
    WScript.Echo ""
    WScript.Echo "- Al usuario se le pide que entr" & _
                 "e los segundos entre imagen"
    WScript.Echo "  e imagen:"
    WScript.Echo ""
    WScript.Echo "    cscript cambiar-tiempo-prese" & _
                 "ntacion.vbs"
    WScript.Echo ""
    WScript.Echo "- Se establece el tiempo en 15 s" & _
                 "egundos"
    WScript.Echo ""
    WScript.Echo "    cscript //nologo cambiar-tie" & _
                 "mpo-presentacion.vbs 15"
    WScript.Echo ""
    WScript.Echo "Nota:"
    WScript.Echo ""
    WScript.Echo "Para que los cambios sean efecti" & _
                 "vos, es necesario que se"
    WScript.Echo "cierre la carpeta desde la que s" & _
                 "e lanzó el visor, se"
    WScript.Echo "vuelva a abrir y se lance de nue" & _
                 "vo el visor."
    WScript.Echo ""
    

End Sub

4 comentarios to “Script VBScript Para Establecer La Velocidad De Presentación Del Visor De Imágenes Y Fax De Windows”

  1. cyruz m said

    me parece muy practico pues es lo que estaba buscando por que el visor no se si tenga controles para manejarlo desde el teclado pues cuando se esta presentando en diapositivas se pasa muy rapido
    tengo dos preguntas para copiar y guardar este script como hago?
    block de notas y con que extencion? y segundo no hay unu script
    para que cuando ponga ver como una presentacion aparesca sin tiempo y lo pueda pasar cuando yo quiera con las flechas del teclado sin preocuparme por que se va a pasar solo?
    gracias

  2. urpiano said

    Cyruz M,

    Bloc de notas y lo guardas con extensión vbs. Respecto a lo segundo, no lo sé, podrías probar a ponerle un valor de 0 a ver qué pasa.

  3. vladimir said

    Por qué se complican tanto, mas facil era que pongas : ” En regedit HKCU Software\Microsoft\Windows\CurrentVersion\Explorer\ShellImageView crear un valor Dword “Timeout” (sin comillas) y asignarle un valor decimal en milisegundos segun el valor que les plazca. Asi, para 1 segundo poner 1000 o para 5 segundos 5000. Asi lo puedes cambiar cuando quieras y como quieras.

    • urpiano said

      Vladimir,

      Imagina que esto mismo lo tienes que hacer en 200 equipos ¿Vas a ir uno por uno haciéndolo? Tendrás que automatizarlo, por ejemplo con este script poniéndolo como script de inicio de equipo en una GPO, o lanzándolo en remoto con psexec.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

 
A %d blogueros les gusta esto: