m765555 发表于 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
    If StringInStr($list[$c],"工作") Or StringInStr($list[$c],"学习") Or StringInStr($list[$c],"删除") 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],"工作") Or StringInStr($list[$c],"学习") Or StringInStr($list[$c],"删除") Then
                                          ;ContinueLoop
                                          ;EndIf
                $hBmp = _ScreenCapture_Capture ("")
                                ; 保存位图到文件

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

                                Next
                                Sleep(800)
        EndIf
Next

Sleep(800)

_ddqs. 发表于 2011-1-10 13:45:22

本帖最后由 _ddqs. 于 2011-1-10 14:55 编辑

循环 999999999+
没完
就不退出
ContinueLoop 在本循环内继续循环……不截 “删除”等
其他的皆屏。。。
----
不一直截才怪

_ddqs. 发表于 2011-1-10 13:58:29

本帖最后由 _ddqs. 于 2011-1-10 14:51 编辑

#include <ScreenCapture.au3>


$list = WinList()

For $c = 1 To $list
        ;截屏:当标题存在有 "工作"、"学习"、"删除" 等字
        If StringInStr($list[$c], "工作") Or StringInStr($list[$c], "学习") Or StringInStr($list[$c], "删除") Then
                $hBmp = _ScreenCapture_Capture("")
                _ScreenCapture_SaveImage("01" & "\" & @YEAR & "-" & @MON & "-" & @MDAY & "_" & @HOUR & @MIN & @SEC & ".jpg", $hBmp) ;用 时间 去命名
        EndIf
Next

m765555 发表于 2011-1-10 14:01:22

但是如果有两个存在的话,一个符合条件,一个不符合条件,关闭了符合条件的表格后,还剩下一个不符合的表格没有关闭的话,截图仍然在进行,怎么不退出呀,就是我说的23-25行代码要是换了的话,为什么起不了作用呀

_ddqs. 发表于 2011-1-10 14:19:25

本帖最后由 _ddqs. 于 2011-1-10 14:30 编辑



;包含 "工作" 或 "学习" 或 "删除" 的不截,继续下一 循环
If StringInStr($list[$c],"工作") Or StringInStr($list[$c],"学习") Or StringInStr($list[$c],"删除") Then

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


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

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

EndIf

_ddqs. 发表于 2011-1-10 14:59:34

回复 4# m765555
list()出的有隐藏的标题匹配就继续。。。

_ddqs. 发表于 2011-1-10 15:01:27

参考list()例子
; 只处理可见窗口

m765555 发表于 2011-1-11 08:26:43

问题已经解决,谢谢_ddqs.的建议,多谢各位

m765555 发表于 2011-1-11 08:27:50

不过http://www.autoitx.com/thread-21023-1-1.html问题一直没有解决,不知道各位有什么建议没??
页: [1]
查看完整版本: 循环截图问题---[已解决]