touch_xu 发表于 2010-10-25 10:06:26

MsgBox提示问题求解【已解决】

本帖最后由 touch_xu 于 2010-10-25 11:40 编辑

我做了一个复制文件的程序,由于文件很多,又要进行日期判断,所以很慢.
提示完了,后有很长时间的没有反应,如何做一个不消失的提示,又不影响代码继续呢,就一直到复制完,都有提示.不要GUI,我主体代码如下:MsgBoxDJS(48, "温馨提示", "正在查找指定日期文件,请等待复制结束提示!", 2, 2)

        $sum = 0
        For $i = 1 To $FileSearch
                $FileDateGet = StringLeft(FileGetTime($FileSearch[$i], 0, 1), 8)
                If $CopyTo = "" Then $CopyTo = @WorkingDir
                If $_Switch = 1 Then
                        If $FileDateGet >= $FileDate1 And $FileDateGet <= $FileDate2 Then
                                If FileCopy($FileSearch[$i], $CopyTo, 1) Then $sum += 1
                        EndIf
                ElseIf $_Switch = 0 Then
                        If $FileDateGet = $FileDate1 Or $FileDateGet = $FileDate2 Then
                                If FileCopy($FileSearch[$i], $CopyTo, 1) Then $sum += 1
                        EndIf
                EndIf
        Next
        If $sum <> 0 Then
                MsgBoxDJS(48, "温馨提示", "共复制了" & $sum & "个文件!", 3, 2)
        Else
                MsgBoxDJS(48, "温馨提示", "没有找到附合条件的文件!", 3, 2)
        EndIf

水木子 发表于 2010-10-25 10:18:12

ProgressOn;这个算GUI吗?

touch_xu 发表于 2010-10-25 10:21:02

本帖最后由 touch_xu 于 2010-10-25 10:40 编辑

但是这个如何控制进度,也是个麻烦问题啊!大侠们帮给个例子吧

xianhou 发表于 2010-10-25 10:54:59

Opt("GUIOnEventMode", 1)

使用事件驱动模式,看看是否可以。

3mile 发表于 2010-10-25 11:10:51

代码不全,猜一下。
MsgBoxDJS(48, "温馨提示", "正在查找指定日期文件,请等待复制结束提示!", 2, 2)

$sum = 0
Local $temp=0
For $i=1 To $FileSearch
        $FileDateGet = StringLeft(FileGetTime($FileSearch[$i], 0, 1), 8)
        If $_Switch = 1 Then
                If $FileDateGet >= $FileDate1 And $FileDateGet <= $FileDate2 Then
                        $temp+=1
                EndIf
        ElseIf $_Switch = 0 Then
                If $FileDateGet = $FileDate1 Or $FileDateGet = $FileDate2 Then
                        $temp+=1
                EndIf
        EndIf
Next

For $i = 1 To $FileSearch
        $FileDateGet = StringLeft(FileGetTime($FileSearch[$i], 0, 1), 8)
        If $CopyTo = "" Then $CopyTo = @WorkingDir
        If $_Switch = 1 Then
                If $FileDateGet >= $FileDate1 And $FileDateGet <= $FileDate2 Then
                        ;If FileCopy($FileSearch[$i], $CopyTo, 1) Then $sum += 1
                        $sum+=1
                        ToolTip("正在复制"&$FileSearch[$i]&@CRLF&"总进度:"&$sum/$temp*100&"%",@DesktopWidth-100,@DesktopHeight-100)
                        FileCopy($FileSearch[$i], $CopyTo, 1))               
                EndIf
        ElseIf $_Switch = 0 Then
                If $FileDateGet = $FileDate1 Or $FileDateGet = $FileDate2 Then
                        If FileCopy($FileSearch[$i], $CopyTo, 1) Then $sum += 1
                EndIf
        EndIf
Next
If $sum <> 0 Then
        MsgBoxDJS(48, "温馨提示", "共复制了" & $sum & "个文件!", 3, 2)
Else
        MsgBoxDJS(48, "温馨提示", "没有找到附合条件的文件!", 3, 2)
EndIf

touch_xu 发表于 2010-10-25 11:40:10

感谢大侠们,感谢3mile ,有这句就好了
ToolTip("正在复制"&$FileSearch[$i]&@CRLF&"总进度:"&$sum/$temp*100&"%",@DesktopWidth-100,@DesktopHeight-100)
谢谢

kingfirekkk 发表于 2010-10-25 15:01:30

好贴,对菜菜来说很好。
页: [1]
查看完整版本: MsgBox提示问题求解【已解决】