| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2711 人关注过本帖, 1 人收藏
标题:各位帮我解决内存 CPU 占用过大问题
只看楼主 加入收藏
chanshui
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-16
收藏
得分:0 
回复 10# multiple1902 的帖子
版主 还是不太懂 看来我这条没有用  如何正确写呢
我的想法应该没错吧
停十分钟再执行
2008-07-16 21:31
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
想法没错,实现有错。

.Net里确实有那个方法,但vbs里没有,而且你居然用了屏蔽错误你真是强啊,闭上眼睛天就黑了?屏蔽了错误你的代码写得就对了?
2008-07-16 21:41
chanshui
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-16
收藏
得分:0 
回复 12# multiple1902 的帖子
谢谢教诲  我刚刚去掉  试了一下
不过用那个方法解决呢
2008-07-16 21:47
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
On Error Resume Next不要随便用。原因自己想。

9楼。

Sleep 方法
请参阅
运行脚本 | WScript 对象
在指定的时间长度内将脚本执行挂起,然后继续执行。

object.Sleep(intTime)
参数
object
WScript 对象。
intTime
表示脚本过程处于不活动状态的时间间隔(毫秒)的整数值。
说明
运行脚本的线程被挂起,释放它所占用的 CPU。超过指定的时间间隔后,脚本继续执行。如果您运行异步操作和多过程,或者您的脚本中包括由事件触发的代码,Sleep 方法就尤其有用。要由事件触发脚本,则脚本必须始终处于活动状态(已执行完的脚本肯定检测不到事件)。脚本所处理的事件仍将在休眠阶段执行。

注意   赋予 Sleep 方法 0 或 –1 不一定会导致脚本挂起。
示例
下面的示例演示如何将一个 .wsf 文件用于以不同脚本语言(VBScript 和 Jscript)写成的两个作业。两个作业的功能相同 — 每个作业都运行 Windows 计算器并将它发送给键击以执行简单的计算。

<package>
   <job id="vbs">
      <script language="VBScript">
         set WshShell = WScript.CreateObject("WScript.Shell")
         WshShell.Run "calc"
         WScript.Sleep 100
         WshShell.AppActivate "Calculator"
         WScript.Sleep 100
         WshShell.SendKeys "1{+}"
         WScript.Sleep 500
         WshShell.SendKeys "2"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 500
         WshShell.SendKeys "*3"
         WScript.Sleep 500
         WshShell.SendKeys "~"
         WScript.Sleep 2500
      </script>
   </job>

   <job id="js">
      <script language="JScript">
         var WshShell = WScript.CreateObject("WScript.Shell");
         WshShell.Run("calc");
         WScript.Sleep(100);
         WshShell.AppActivate("Calculator");
         WScript.Sleep(100);
         WshShell.SendKeys("1{+}");
         WScript.Sleep(500);
         WshShell.SendKeys("2");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(500);
         WshShell.SendKeys("*3");
         WScript.Sleep(500);
         WshShell.SendKeys("~");
         WScript.Sleep(2500);
      </script>
   </job>
</package>
请参阅
运行脚本 | WScript 对象


WScript对象有Sleep方法。
2008-07-16 21:48
chanshui
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-16
收藏
得分:0 
回复 12# multiple1902 的帖子
屏蔽了错误你的代码写得就对了?
?????
望解答
2008-07-16 21:50
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
屏蔽了错误,你的代码该错还是错,只是不告诉你而已,岂不是隐患更大?有时产生会未预料的错误,比如计算结果错误,导致你被炒饭碗之类的。

屏蔽错误要么是一种策略,就是你知道确定情况下会出错,并且你能妥善处理好这个错误。要么就是最终版程序提升用户体验。总之不是骗自己让自己觉得代码写得对。
2008-07-16 21:54
chanshui
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-16
收藏
得分:0 
回复 16# multiple1902 的帖子

谢谢
我现在写的 不知道还有错误没有
剩下就是测试了
a=hour(now)
if   a>=8 and a<22 then
 do until(c>=3)
dim WSHshellD
set WSHshellD = wscript.createobject("wscript.shell")

wscript.sleep 600000
   b=hour(now)
   c=b-a
   loop
msgbox chr(13) + "爸爸:上了就要三个小时了,一分钟就关机了啊,为

了你的健康,爱你的儿子"
dim WSHshellA
set WSHshellA = wscript.createobject("wscript.shell")
WSHshellA.run "cmd.exe /c shutdown -r -t 60 "

set WSHshellA =nothing
elseif a>=22  and  a<24  then
do until(a=0)
dim WSHshellE
set WSHshellE = wscript.createobject("wscript.shell")

wscript.sleep 600000
 a=hour(now)
 loop
msgbox chr(13) + "爸爸,已经十二点,半分钟就关机了啊,为了你的健康

,爱你的儿子"
dim WSHshellB
set WSHshellB = wscript.createobject("wscript.shell")
WSHshellB.run "cmd.exe /c shutdown -r -t 30 "
set WSHshellB =nothing
else
msgbox chr(13) + "爸爸,已经过了十二点了,半分钟就关机了啊,为了你

的健康,爱你的儿子"
dim WSHshellC
set WSHshellC = wscript.createobject("wscript.shell")
WSHshellC.run "cmd.exe /c shutdown -r -t 30 "
set WSHshellC =nothing
end if
2008-07-16 22:00
chanshui
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-7-16
收藏
得分:0 
回复 16# multiple1902 的帖子
问题解决谢谢
以后多学VB了
简单明了
我以前是学JAVA的
什么语言都没有学好
多谢你帮忙
现在新问题出来了
呵呵
怎么在三个小时之后开机还是不能上呢
是否要把记录导入到记事本
如YEAR MONTH DATE  TIME
2008-07-16 22:09
水中无月
Rank: 1
等 级:新手上路
帖 子:190
专家分:9
注 册:2008-6-17
收藏
得分:0 
我建议你用一个Timer来测试时间,每次OnTimer事件就获取一次时间,如果超时的话就弹出提示。
如果你老爸知道怎样结束进程的话,你可以把你的程序隐藏或设置为系统级别 以防止结束进程。
到了时间就在1分钟之内关机,并记录下时间,只有等过了多少时间后才能继续玩

孝心可嘉!同时我也祝你成功!

十里平湖霜满天,寸寸青丝愁华年,对月形单望相互,只羡鸳鸯不羡仙.
2008-07-17 19:48
happynight
Rank: 8Rank: 8
等 级:贵宾
威 望:15
帖 子:807
专家分:760
注 册:2008-4-26
收藏
得分:0 
可怜的老爸 我决定教你老爸怎样破解 呵呵 这样你们两在"争斗"中都会有收获的 哈哈
2008-07-18 16:09
快速回复:各位帮我解决内存 CPU 占用过大问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024246 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved