找回密码
 加入
搜索
查看: 1737|回复: 8

求教:怎样让程序在占用CPU较少的情况下一直运行

  [复制链接]
发表于 2010-1-10 06:01:49 | 显示全部楼层 |阅读模式
本帖最后由 howacter 于 2010-1-11 02:05 编辑

今天写了个半自动保存网页图片的脚本,用的while()无限循环,
但这样CPU 使用率高达50%,不知怎么解决。
$HotKey="f"
$choose=MsgBox(4,'热键确定','默认的热键是 f 键,若想改变则按否')
If $choose=7 Then
        $HotKey=InputBox("热键确定","请输入你喜欢的热键","f")
EndIf
HotKeySet($HotKey,"toggle")
$toggle=0
While 1
        If $toggle Then
                MouseClick("right")
                Send("s")
                Send("!s")
                If WinWaitActive("保存图片","已存在",1) Then
                        Send("{enter}")
                        Send(Random(0,500,1))
                        Send("!s")
                EndIf
                $toggle=Not $toggle
        EndIf
WEnd
Func toggle()
        $toggle=Not $toggle
EndFunc

        
发表于 2010-1-10 07:55:08 | 显示全部楼层
$HotKey = "f"
$choose = MsgBox(4, '热键确定', '默认的热键是 f 键,若想改变则按否')
If $choose = 7 Then
        $HotKey = InputBox("热键确定", "请输入你喜欢的热键", "f")
EndIf
HotKeySet($HotKey, "toggle")
$toggle = 0
While 1
        If $toggle Then
                MouseClick("right")
                Send("s")
                Send("!s")
                If WinWaitActive("保存图片", "已存在", 1) Then
                        Send("{enter}")
                        Send(Random(0, 500, 1))
                        Send("!s")
                EndIf
                $toggle = Not $toggle
        EndIf
        Sleep(1)
WEnd
Func toggle()
        $toggle = Not $toggle
EndFunc   ;==>toggle

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

 楼主| 发表于 2010-1-11 00:51:23 | 显示全部楼层
昨天看了下教程,基本解决了这个问题。
$HotKey="f"
$name=0
$choose=MsgBox(4,'热键确定','默认的热键是 f 键,若想改变则按否')
If $choose=7 Then
        $HotKey=InputBox("热键确定","请输入你喜欢的热键","f")
EndIf
HotKeySet($HotKey,"SavePic")
$toggle=False

While 1
        Sleep(100)
WEnd

Func SavePic()
        $toggle=Not $toggle
        While $toggle
                MouseClick("right")
                Send("s")
                WinWaitActive("保存图片","保存在")
                Send("!s")
                If WinWaitActive("保存图片","已存在",1) Then
                        Send("{enter}")
                        $name+=1
                        Send($name)
                        Send("!s")
                EndIf
                $toggle=Not $toggle
        WEnd
EndFunc

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-1-11 00:53:22 | 显示全部楼层
回复 3# howacter


    如2#所示,加个sleep()就OK了
 楼主| 发表于 2010-1-11 01:03:18 | 显示全部楼层
回复 4# afan
我试了下,确实可以,CPU使用率只有1%左右,谢谢2#和4#对该问题的关注。
 楼主| 发表于 2010-1-11 02:04:23 | 显示全部楼层
问个我不清楚的简单问题,希望各位莫怪。请问怎么改变帖子的分类,将帖子从【未解决问题区】
移到【已解决问题区】,我用了“编辑”后不知道从哪里改。
发表于 2010-1-11 02:08:02 | 显示全部楼层
回复 6# howacter

未解决问题区没有分类……
所以以后请不要在未解决问题区发帖,直接在父版块提问交流发帖,解决了就可以改为解决,N久解决不了才改为未解决~
 楼主| 发表于 2010-1-11 02:15:06 | 显示全部楼层
哦,原来是这样啊,谢谢老大的回答!
发表于 2010-1-11 17:59:26 | 显示全部楼层
迷糊...接着迷糊
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2025-1-12 08:51 , Processed in 0.076340 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表