2010-10-27 33 views

Respuesta

16

Puede utilizar un objeto WScript y llame al método Sleep en él:

Set WScript = CreateObject("WScript.Shell") 
WScript.Sleep 2000 'Sleeps for 2 seconds 

Otra opción es importar y utilizar la función API de Windows directly (sólo funciona en VBA, gracias @Helen):

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 
Sleep 2000 
+1

Nota: No puede ejecutar funciones de WinAPI desde VBScript. Su segundo ejemplo solo funciona en VB/VBA. – Helen

+1

@Helen - gracias por la información. No sabía acerca de esta limitación. Respuesta actualizada – Oded

+1

Acabo de probar esto y parece que la declaración 'Set WScript = ...' es extraña. Solo una línea 'WScript.Sleep 2000' funcionó para mí (al igual que' WScript.Echo' siempre). –

17

El recorte de script a continuación crea un subpausa que muestra el texto de pausa en una cadena y espera la tecla Intro. z puede ser cualquier cosa. Excelente si se requieren pausas para la intervención del usuario múltiple. Solo lo guardo en mi plantilla de script estándar.

Pause("Press Enter to continue") 

Sub Pause(strPause) 
    WScript.Echo (strPause) 
    z = WScript.StdIn.Read(1) 
End Sub 
8

Con 'Enter' es mejor utilizar ReadLine() o Read (2), porque la tecla 'Enter' genera 2 símbolos. Si el usuario ingresa cualquier texto, Pausa() también se omitirá incluso con la opción Lectura (2). Así ReadLine() es mejor:

Sub Pause() 
    WScript.Echo ("Press Enter to continue") 
    z = WScript.StdIn.ReadLine() 
End Sub 

Más ejemplos se ven en http://technet.microsoft.com/en-us/library/ee156589.aspx

+8

Lo sé. Pero la respuesta aceptada tiene problemas apunté. Quiero agregar un comentario a la respuesta aceptada pero no tengo suficiente reputación. Así que publico otra respuesta –

+1

@PlasmaPower Este sitio trata de encontrar múltiples respuestas para el mismo problema. Cuando se formuló la pregunta, no aparecían todos los posibles programadores con todas las soluciones posibles. Bien por Sergey por agregar otra respuesta. Sergey, esta fue una respuesta buena y aceptable, no un comentario. +1 – Kristopher

Cuestiones relacionadas