找回密码
 加入
搜索
查看: 1725|回复: 3

后台复制前台提示代码!

[复制链接]
发表于 2009-3-22 09:53:47 | 显示全部楼层 |阅读模式
经过管理员等的大力支持和帮助,最终完善代码如下(为了测试方便,时间改为20秒):


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$kao = MsgBox(1, "后台复制前台提示测试", "确定后台复制?")
Select
        Case $kao = 1
                DirCopy("D:\001", "C:\002" ,1)
                $Form1 = GUICreate("程序", 370, 40, -1,-1, $WS_POPUP)
                $Label = GUICtrlCreateLabel("", 10, 15, 350, 17)
                GUISetState(@SW_SHOW)
                Dim $i = 1
                While 1
                        $i = $i + 1
                        GUICtrlSetData($Label, "系统正在后台复制文件,大约需要20秒时间,还剩 " & 20 - $i & " 秒")                        
                        Sleep(1000)
                        If $i = 20 Then ExitLoop
                WEnd
                GUISetState(@SW_HIDE)
                MsgBox(0, "恭喜", "后台复制文件完成")
   Case $kao = 2
                MsgBox(0, "后台复制前台提示测", "你取消了后台复制文件")
   
EndSelect              



现在的问题是:
如果后台运行DirCopy("D:\001", "C:\002" ,1),瞬间完成的话,那么
提示“窗口”GUICtrlSetData($Label, "系统正在后台复制文件,大约需要20秒时间,还剩 " & 20 - $i & " 秒")   正常出现没有问题。
但是,
如果后台运行DirCopy("D:\001", "C:\002" ,1),需要一定时间,比如20秒的话,那么
提示“窗口”GUICtrlSetData($Label, "系统正在后台复制文件,大约需要20秒时间,还剩 " & 20 - $i & " 秒")   就只能在20秒后才出现,
即DirCopy("D:\001", "C:\002" ,1)运行完毕后,才出现提示,时间最后翻倍了!

测试方法:
建立D:\001,包含一定复制文件,大约20秒才能复制完成;
建立C:\002;
运行代码!

还需要进一步调试!
发表于 2009-3-22 11:57:58 | 显示全部楼层
直接用 RunWait 运行 ,去掉20秒延时,完成后马上跳出对话框。
(见帮助)
发表于 2009-7-22 10:41:56 | 显示全部楼层
发表于 2009-7-22 12:23:54 | 显示全部楼层
LZ的代码与结果其实是一致的,你本来就是在复制完才额外多余显示需要20秒……
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 16:27 , Processed in 0.081960 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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