2015-01-22 3 views
3

Как я могу отложить скрипт Vb? следующие коды не работали для меня:Как задержать скрипт VB?

wscript.sleep 1000 

Delay 10 

Sub Delay(seconds) 
    Dim wshShell, strCmd 
    Set wshShell = CreateObject("Wscript.Shell") 
    strCmd = "%COMSPEC% /C (PING -n " & (seconds + 1) & " 127.0.0.1 >NUL 2>&1 || PING -n " & seconds & " ::1 >NUL 2>&1)" 
    wshShell.Run strCmd, 0, 1 
    Set wshShell = Nothing 
End Sub 

dim oshell 
set oshell = CreateObject("Wscript.Shell") 


obshell.run "%windir%\system32\rundll32.exe kernel32.dll Sleep 5000" 

ответ

3

Первое утверждение, WScript.Sleep 1000, делает работу. Ваша ошибка должна быть где-то в другом месте.

Доказательство

Создайте файл test.vbs на рабочем столе:

WScript.Echo Time() 
WScript.Sleep 2000 
WScript.Echo Time() 

Выполнить следующим образом:

C:\Users\...\Desktop>cscript test.vbs 
Microsoft (R) Windows Script Host Version 5.8 
Copyright (C) Microsoft Corporation. All rights reserved. 

11:31:34 
11:31:36 

Обратите внимание на два вторых разница. (Если этот точный сценарий дает отличный результат на вашем ПК, скажите об этом в комментариях и примите мои извинения.)

+0

Тег WScript, похоже, не работает над моим проектом. Я использую Visual Studio 2010 Setup Project при запуске моих скриптов. – ladiesman1792

+0

Вот мой сценарий, http://justpaste.it/j0y7. Код не работает, если я помещаю WSCRIPT.Sleep. Вместо этого я помещал окно сообщения. – ladiesman1792

+3

@ ladiesman1792: Ах, хорошо, это значительная часть информации. :-) По-видимому, вы не можете использовать WScript в проектах установки, даже с CreateObject. Вы можете использовать [один из обходных решений, обсуждаемых здесь] (http://stackoverflow.com/q/8487935/87698) или [использовать другой метод ожидания (например, ожидание в цикле), обсуждаемое здесь] (http: // stackoverflow.com/q/1729075/87698). – Heinzi

1

Вы не можете использовать объект WScript в пользовательских действиях скрипта VB. Объект WScript предоставляется средой сценария при запуске в Windows Script Host и не находится в среде MSI. Это означает, что нет возможности сделать задержку, поэтому, возможно, вы могли бы описать проблему, с которой вы столкнулись, что может задержать задержка.

Смежные вопросы