Board logo

标题: [求助]如何实现启动文件夹中的vbs文件延时执行 [打印本页]

作者: cnds     时间: 2008-12-6 20:30    标题: [求助]如何实现启动文件夹中的vbs文件延时执行

我的这个vbs文件要放到启动文件夹中,让计算启动时执行的。但是我想等计算机触发这个文件2分钟之后,才执行里面的代码,想我高手帮我写延时代码。谢谢。
Set WshShell = WScript.CreateObject("Wscript.Shell")
WshShell.Run "%comspec% /c regedit /s C:\windows\mod_reg.reg",0,true

Set WshShell = WScript.CreateObject("WScript.Shell")
strDesktop = WshShell.SpecialFolders("Desktop")
set oShellLink = WshShell.CreateShortcut(strDesktop & "\腾讯QQ.lnk")
oShellLink.TargetPath = "D:\backup\qq\QQ.exe"
oShellLink.WindowStyle = 2
oShellLink.Hotkey = ""
oShellLink.IconLocation = "D:\backup\qq\QQ.exe, 0"
oShellLink.Description = ""
oShellLink.WorkingDirectory = "D:\backup\qq"
oShellLink.Save

set fso=wscript.createobject("scripting.filesystemobject")
fso.deletefile "C:\windows\mod_reg.reg"
fso.deletefile "C:\Docume~1\Administrator\「开始」菜单\程序\启动\mod_reg.vbs"
───────────────── 版务记录 ─────────────────
执行:HAT
操作:[2008-12-06]在帖子标题中增加搜索关键字
说明:原标题"请高手帮我加入延时代码,达到延时执行之目的"不利于论坛搜索
处罚:论坛新人免于积分处罚
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────


[ Last edited by HAT on 2008-12-6 at 20:44 ]
作者: 406317577     时间: 2008-12-7 01:23
ping -n 120 127.1>nul
call 你的VBS文件名字
作者: guigui     时间: 2008-12-7 11:50
我记得有位大哥写过的    内容如下:


批处理延时方法小结:
1.ping
CODE:  [Copy to clipboard]
@echo off
:loop
    echo %time%
    ping 127.1 -n 2 1>nul
    echo %time%
goto loop
内存使用: cmd.exe  1704k
              ping.exe  2920k   
误差评定: 较高
优点:       代码构造简单
缺点:       内存占用高,延迟时间长的话误差相对较大。


2.还是ping
CODE:  [Copy to clipboard]
@echo off
:loop
    echo %time%
    ping 1 -n 1 -w 1000 2>nul 1>nul
    echo %time%
goto loop
内存使用:  cmd.exe  1700k
               ping.exe  2912k
误差评定:  一般
优点:        代码构造简单,时间越长误差越小,精确度较高(50ms)
缺点:        内存占用高


3.call
CODE:  [Copy to clipboard]
@echo off
:loop
    echo %time%
    call :delay 1000
    echo %time%
goto loop

:delay
    set /a num=num + 1
    if %num% geq %1 (set num=) && goto :eof
rem    for /l %%i in (1,1,%1) do echo. >nul
goto :eof
内存使用:  cmd.exe 1744k  [for语句方案]
               cmd.exe 1740k  [set+goto方案]
误差评定:  很高 (受CPU频率影响非常大,几乎无法准确把握全局延迟时间)
优点:       精确度较高
缺点:        不适合需精确把握时间的场合

4.msg
CODE:  [Copy to clipboard]
@echo off
:loop
    echo %time%
    msg %username% /time:20 /w "正在延时,点确定可以取消延时!"
    echo %time%
goto loop
内存使用:  cmd.exe  1752k
               msg.exe  2620k
误差评定:  低
优点:       比较稳定,可中途取消延时,代码构造简单
缺点:        内存占用非常大,有窗口弹出(优点?缺点?)

5.vbs
CODE:  [Copy to clipboard]
@echo off
    echo Wscript.Sleep WScript.Arguments(0) >%tmp%\delay.vbs
:loop
    echo %time%
    cscript //b //nologo %tmp%\delay.vbs 2000
    echo %time%
goto loop
内存使用:  cscript.exe 4812k
               cmd.exe    1708k
误差评定:  很低
优点:        精确度最高,使用更灵活,方便
缺点:        产生临时文件,内存占用多
作者: cnds     时间: 2008-12-7 19:52
你们写的好复杂。我找到一个更简单的。比如想延时5秒,
wscript.sleep 5000
这个命令可以插入VBS程序中,这句代码后面的所有代码都将延迟5秒再执行。
作者: 313885174     时间: 2008-12-8 22:15
timediff=60  
wscript.sleep timediff*2000
计算60次2秒正好是2分钟
作者: 5872169     时间: 2008-12-9 14:38
wscript.sleep 120000
这是二分钟