标题: [问题求助] VBS闹钟的核心代码一样,为何其中一个这么占cup? [打印本页]
作者: FOR 时间: 2012-11-21 17:32 标题: VBS闹钟的核心代码一样,为何其中一个这么占cup?
核心代码一样,为何其中一个这么占cup
学习vbs
在网上找了个闹钟的代码,自以为看懂了,于是依葫芦画瓢自己也写了一个
可为何我的代码一运行cup就飙到 25,而别人的却是0
仔细研究了一天,实在是找不出原因来了,头都快炸了,请各位大神帮忙解惑。
代码一,网上找的- on error resume next
- set ws=createobject("wscript.shell")
- set fso=createobject("scripting.filesystemobject")
-
- do
- 't=inputbox("注意:本程序只考虑到分种")
- t=2359
- if t="" then
- wscript.quit
- elseif IsNumeric(t)=false then
- msgbox "输入错误,请重新输入!",16+4096,"错误"
- elseif len(t)<>4 or left(t,2)>24 or right(t,2)>59 then
- msgbox "输入错误,请重新输入!",16+4096,"错误"
- else
- call naoling()
- end if
- loop
-
- sub naoling()
- shi=left(t,2)
- fen=right(t,2)
- do
- if timer>3600*shi+60*fen then
- ws.run "cmd /c @echo ",0,true
- sfjx=Ws.Popup("时间已到,是否继续运行闹铃程序?"& vbcrlf & "如果不退出闹铃将在1分钟后继续提醒。", 10, "闹铃提醒", 4 + 32)
- if sfjx=7 then
- wscript.quit
- else
- wscript.sleep 1000*60
- end if
- end if
- wscript.sleep 1000
- loop
- end sub
复制代码
代码二,我自己写的,狂占cup- set ws=WScript.CreateObject("WScript.Shell")
- t=time:t1=int(timer)
-
- do
-
- a=20
- if a=false then
- Wscript.Quit '判断若点了关闭按钮则退出
- elseif IsNumeric(a)=false then
- msgbox "输入错误,请重新输入!",16+4096,"错误"
- else exit do
- end if
- loop
-
- ts=inputbox("输入提示信息","提示","提示")
- if ts=false then Wscript.Quit '判断若点了关闭按钮则退出
-
- a1=a*60+t1
- fen=((a mod 60)+minute(t)) mod 60
- shi=int(a/60+hour(t))
- if (a mod 60)+minute(t)>=60 then shi=shi+1
-
- s="00"&shi:f="00"&fen
- msgbox "启动时间 "&right(s,2)&":"&right(f,2)
-
- do
- if timer>=a1 then
- ws.run "cmd /c @echo ",0,true
- f=Ws.Popup("时间已到,是否继续运行闹铃程序?"& vbcrlf & "如果不退出闹铃将在1分钟后继续提醒。", 10, "闹铃提醒", 4 + 32)
- If (f = 7 ) Then
- Wscript.Quit
- else
- wscript.sleep 1000*5
- end if
- wscript.sleep 1000
- end if
- loop
复制代码
作者: FOR 时间: 2012-11-21 18:24
上帝啊,总算找到原因了,原来是 do loop 循环的太快了,要给它加个延时- do
- if a="aa" then msgbox "hh"
- wscript.sleep 1000 '没有这一行的原因
- loop
复制代码
作者: czjt1234 时间: 2012-11-23 08:22
cpu 不是 cup
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |