找回密码
 加入
搜索
查看: 9337|回复: 16

[AU3基础] 怎么让TrayTip的点号显示正常,并复制完后关闭TrayTip

 火.. [复制链接]
发表于 2012-7-28 18:09:17 | 显示全部楼层 |阅读模式
本帖最后由 夜猫猫 于 2012-7-28 18:12 编辑

需要下面图中红圈中点号动态显示....并能正常关闭...
Global $type

_TrayTip()
 fileCopy("C:\WXPE\*.*", "D:\WXPE\*.*", 1) 

Func _TrayTip()
 While 1
    For $i = 1 to 5 step 1
     sleep(100)
          TrayTip("温馨提示:", "请稍等"&$type& @CRLF _
           &"    正在复制文件中!", 100, 1)
            $type &= '。'
                If StringLen($type) > 6 Then $type = ''
        Next
 WEnd
EndFunc

本帖子中包含更多资源

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

×
发表于 2012-7-28 18:35:27 | 显示全部楼层
本帖最后由 xiehuahere 于 2012-7-28 18:37 编辑

回复 1# 夜猫猫


    用 AdlibRegister 注册函数使其定时执行,这样才是并发的。FileCopy完成后脚本退出,traytip也就消失了。
  你那样就是一直在死循环执行_TrayTip函数而fileCopy并没有得到执行。
Global $type
AdlibRegister("_TrayTip", 500)
fileCopy("C:\WXPE\*.*", "D:\WXPE\*.*", 1)

Func _TrayTip()
        TrayTip("温馨提示:", "请稍等" & $type & @CRLF _
           &"    正在复制文件中!", 100, 1)
        $type &= '。'
        If StringLen($type) > 6 Then $type = ''
EndFunc
 楼主| 发表于 2012-7-28 18:44:27 | 显示全部楼层
本帖最后由 夜猫猫 于 2012-7-28 18:49 编辑
回复  夜猫猫


    用 AdlibRegister 注册函数使其定时执行,这样才是并发的。FileCopy完成后脚本退出 ...
xiehuahere 发表于 2012-7-28 18:35



没作用. 我想要的是& $type &动态显示效果.AdlibRegister是定时的..不灵活

我想这样:但是那个点不动
Global $type

TrayTip("温馨提示:", "请稍等"&_TrayTip()& @CRLF _
           &"    正在复制文件中!", 100, 1)

Func _TrayTip()
 While 1
    For $i = 1 to 5 step 1
     sleep(100)
        $type=""
            $type &= '。'
                If StringLen($type) > 6 Then $type = ''
        Next
        Return $type
 WEnd
EndFunc

Sleep(5000)
发表于 2012-7-28 18:58:00 | 显示全部楼层
本帖最后由 xiehuahere 于 2012-7-28 18:59 编辑

回复 3# 夜猫猫


    还是不懂你的意思。我上面的代码不就是动态显示的吗(如果fileCopy不是立即返回而是拷贝完才返回的话)?省略号延伸嘛。。。。。话说你运行过没啊?
   作为中级会员,你的代码跟你的身份不符啊。。。我不忍看了 ^_^
发表于 2012-7-28 20:52:57 | 显示全部楼层
AdlibRegister("_TrayTip", 100)


While 1
        Sleep(10)
WEnd

Func _TrayTip()
        TrayTip("温馨提示:", "请稍等" & @CRLF _
                         & "    正在复制文件中!", 100, 1)
        Sleep(60)
        TrayTip("温馨提示:", "请稍等●" & @CRLF _
                         & "    正在复制文件中!", 100, 1)
        Sleep(60)
        TrayTip("温馨提示:", "请稍等●●" & @CRLF _
                         & "    正在复制文件中!", 100, 1)
        Sleep(60)
        TrayTip("温馨提示:", "请稍等●●●" & @CRLF _
                         & "    正在复制文件中!", 100, 1)
        Sleep(60)
        TrayTip("温馨提示:", "请稍等●●●●" & @CRLF _
                         & "    正在复制文件中!", 100, 1)
EndFunc   ;==>_TrayTip
发表于 2012-7-28 21:08:24 | 显示全部楼层
回复 5# haijie1223
发哥,这个主意不错,就是太闪眼了,把定时时间和_TrayTip中的延时加大要好点。
发表于 2012-7-28 21:15:57 | 显示全部楼层
nono,应该是ToolTip更好吧 一会回来看下
发表于 2012-7-28 22:04:26 | 显示全部楼层
Global $type = ""
AdlibRegister("_TrayTip", 250)
;fileCopy("F:\002.vmdk", "D:", 1)
While 1
        Sleep(250)
WEnd

Func _TrayTip()
        TrayTip("温馨提示:", "    文件正在复制中," & @CRLF & "请稍等" & $type, 1, 1)
        $type &= '。'
        If StringLen($type) > 6 Then $type = ''
EndFunc   ;==>_TrayTip
上述代码点号能动态变化,但启用第3句后(也可同时解释掉4-6句),会发现拷贝过程中不会动态变化。说明fileCopy不是立即返回而是拷贝完才返回,看来只能用多进程模拟多线程来实现了。
发表于 2012-7-29 00:15:32 | 显示全部楼层
#include <File.au3>
#include <String.au3>
Global $InDir = "D:\driver backup\", $ToDir = "C:\Temp\", $i, $j
$aFileList = _FileListToArray($InDir)
For $i = 1 To $aFileList[0]
        If StringInStr(FileGetAttrib($InDir & $aFileList[$i]), "D") Then
                DirCopy($InDir & $aFileList[$i], $ToDir & $aFileList[$i], 1)
        Else
                FileCopy($InDir & $aFileList[$i], $ToDir & $aFileList[$i], 1 + 8)
        EndIf
        $j += 1
        ToolTip("请稍等" & _StringRepeat(" .", $j) & @CRLF & "    正在复制文件中!", @DesktopWidth - 200, @DesktopHeight - 150, "温馨提示:", 1, 1)
        If $j >= 6 Then $j = 1
        Sleep(100)
Next


不是特别完美,但能凑合用
 楼主| 发表于 2012-7-29 00:32:21 | 显示全部楼层
本帖最后由 夜猫猫 于 2012-7-29 00:34 编辑

我原先的想法是把TrayTip独立出来..标题.内容自定义,点号动态是为了好看点...

下面代码.当.有进度时.点号会动..没进度是不动的.
                                
TrayTip("温馨提示:", "请稍等"&$type& @CRLF _
                 &"正在下载:"&_getfilename($s_LocalFile)&" "&@CR& _                  
                '下载进度:'&Int(($done / $glen)*100) & " % ", 1,1)
                                $type &= '。'
                            If StringLen($type) > 6 Then $type = ''
 楼主| 发表于 2012-7-29 13:10:59 | 显示全部楼层
Global $type
_TrayTip()

Func _TrayTip()
        Local $i = 0
  Do
        TrayTip("温馨提示:", "请稍等●"&$type&  @CRLF _
                         & "    正在复制文件中!", 100, 1)
                        $type &= '●'
        If StringLen($type) > 6 Then $type = ''
    $i = $i + 1
 Until $i = 1000
 TrayTip("","",0)
EndFunc   ;==>_TrayTip

Sleep(50000)
发表于 2012-7-29 15:30:40 | 显示全部楼层
感谢分享……
发表于 2012-7-29 17:37:55 | 显示全部楼层
和楼主沟通有困难,还是默默路过好了...
BTW 难道TrayTip闪烁不厉害么?
发表于 2012-7-29 20:31:13 | 显示全部楼层
回复 9# ashfinal
最起码不闪,不知道traytip有什么办法不闪?
 楼主| 发表于 2012-7-30 12:35:27 | 显示全部楼层
本帖最后由 夜猫猫 于 2012-7-30 12:37 编辑

......不是不好沟通...是我的意思没传达给你...

最坏的一种状态..是没有动作..静默的.没进程.无进度.需要点号运动.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 03:51 , Processed in 0.087288 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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