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

[AU3基础] 循环截图问题---[已解决]

[复制链接]
发表于 2011-1-10 13:19:12 | 显示全部楼层 |阅读模式
本帖最后由 m765555 于 2011-1-11 12:04 编辑

各位高手们,帮我看一下这段代码:如果22行换成23到25的代码的话,为什么23-25的代码好像没有起到作用呢?如果不换的话,原代码有个漏洞,就是打开几个excel表的时候程序仍然在截图,不会自动退出,也就是我说的23-25行代码为什么换上之后没有效果,没有跳出最里面一层的循环呢?高手请指点一下,谢谢啊!!!
#include <ScreenCapture.au3>
Opt("RunErrorsFatal", 0)
;(此命令说明程序运行时托盘上的图标不会显示)
Opt("TrayIconHide", 1)
;设置一个可调用某用户函数的热键。
;(此命令为按下f12程序退出)

        Sleep(800)
While 1
        Sleep(800)
If Not FileExists("01") Then
DirCreate("01")
EndIf
$list = WinList()
For $c=1 To $list[0][0]
    If StringInStr($list[$c][0],"工作") Or StringInStr($list[$c][0],"学习") Or StringInStr($list[$c][0],"删除") Then          
        Local $hBmp,$i,$ii
        $ii=9999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
                For $i=1 To $ii
                ; 全屏捕获
                    Sleep(800)
                          If Not ProcessExists("EXCEL.exe") Then ContinueLoop
                                          ;If StringInStr($list[$c][0],"工作") Or StringInStr($list[$c][0],"学习") Or StringInStr($list[$c][0],"删除") Then
                                          ;ContinueLoop
                                          ;EndIf
                $hBmp = _ScreenCapture_Capture ("")
                                ; 保存位图到文件

                    _ScreenCapture_SaveImage ("01"&""&$i &".jpg", $hBmp)
                    Sleep(800)

                                Next
                                Sleep(800)
        EndIf
Next

Sleep(800)
发表于 2011-1-10 13:45:22 | 显示全部楼层
本帖最后由 _ddqs. 于 2011-1-10 14:55 编辑

循环 999999999+
没完
就不退出
ContinueLoop 在本循环内继续循环……不截 “删除”等
其他的皆屏。。。
----
不一直截才怪
发表于 2011-1-10 13:58:29 | 显示全部楼层
本帖最后由 _ddqs. 于 2011-1-10 14:51 编辑
#include <ScreenCapture.au3>


$list = WinList()

For $c = 1 To $list[0][0]
        ;截屏:当标题存在有 "工作"、"学习"、"删除" 等字 
        If StringInStr($list[$c][0], "工作") Or StringInStr($list[$c][0], "学习") Or StringInStr($list[$c][0], "删除") Then
                $hBmp = _ScreenCapture_Capture("")
                _ScreenCapture_SaveImage("01" & "" & @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & @MIN & @SEC & ".jpg", $hBmp) ;用 时间 去命名
        EndIf
Next
 楼主| 发表于 2011-1-10 14:01:22 | 显示全部楼层
但是如果有两个存在的话,一个符合条件,一个不符合条件,关闭了符合条件的表格后,还剩下一个不符合的表格没有关闭的话,截图仍然在进行,怎么不退出呀,就是我说的23-25行代码要是换了的话,为什么起不了作用呀
发表于 2011-1-10 14:19:25 | 显示全部楼层
本帖最后由 _ddqs. 于 2011-1-10 14:30 编辑
;包含 "工作" 或 "学习" 或 "删除" 的不截,继续下一 循环
If StringInStr($list[$c][0],"工作") Or StringInStr($list[$c][0],"学习") Or StringInStr($list[$c][0],"删除") Then

        ContinueLoop
Else
        $hBmp = _ScreenCapture_Capture ("")
        _ScreenCapture_SaveImage ("01"&""&$i &".jpg", $hBmp)
        ExitLoop
EndIf


;包含 "工作" 或 "学习" 或 "删除" 的截图 ,并退出循环
If StringInStr($list[$c][0],"工作") Or StringInStr($list[$c][0],"学习") Or StringInStr($list[$c][0],"删除") Then

        $hBmp = _ScreenCapture_Capture ("")
        _ScreenCapture_SaveImage ("01"&""&$i &".jpg", $hBmp)
        ExitLoop
        
Else
        ContinueLoop

EndIf
发表于 2011-1-10 14:59:34 | 显示全部楼层
回复 4# m765555
list()出的有隐藏的标题匹配就继续。。。
发表于 2011-1-10 15:01:27 | 显示全部楼层
参考list()例子
; 只处理可见窗口
 楼主| 发表于 2011-1-11 08:26:43 | 显示全部楼层
问题已经解决,谢谢_ddqs.的建议,多谢各位
 楼主| 发表于 2011-1-11 08:27:50 | 显示全部楼层
不过http://www.autoitx.com/thread-21023-1-1.html问题一直没有解决,不知道各位有什么建议没??
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-10-2 18:30 , Processed in 0.076703 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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