怎么让TrayTip的点号显示正常,并复制完后关闭TrayTip
本帖最后由 夜猫猫 于 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 本帖最后由 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:49 编辑
回复夜猫猫
用 AdlibRegister 注册函数使其定时执行,这样才是并发的。FileCopy完成后脚本退出 ...
xiehuahere 发表于 2012-7-28 18:35 http://www.autoitx.com/images/common/back.gif
没作用. 我想要的是& $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) 本帖最后由 xiehuahere 于 2012-7-28 18:59 编辑
回复 3# 夜猫猫
还是不懂你的意思。我上面的代码不就是动态显示的吗(如果fileCopy不是立即返回而是拷贝完才返回的话)?省略号延伸嘛。。。。。话说你运行过没啊?
作为中级会员,你的代码跟你的身份不符啊。。。我不忍看了 ^_^
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 回复 5# haijie1223
发哥,这个主意不错,就是太闪眼了,把定时时间和_TrayTip中的延时加大要好点。 nono,应该是ToolTip更好吧 一会回来看下 {:face (280):} 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不是立即返回而是拷贝完才返回,看来只能用多进程模拟多线程来实现了。 #include <File.au3>
#include <String.au3>
Global $InDir = "D:\driver backup\", $ToDir = "C:\Temp\", $i, $j
$aFileList = _FileListToArray($InDir)
For $i = 1 To $aFileList
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
不是特别完美,但能凑合用
{:face (411):} 本帖最后由 夜猫猫 于 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 = '' {:face (197):}
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)
感谢分享…… 和楼主沟通有困难,还是默默路过好了...
BTW 难道TrayTip闪烁不厉害么? 回复 9# ashfinal
最起码不闪,不知道traytip有什么办法不闪? 本帖最后由 夜猫猫 于 2012-7-30 12:37 编辑
{:face (394):}......不是不好沟通...是我的意思没传达给你...
最坏的一种状态..是没有动作..静默的.没进程.无进度.需要点号运动.
页:
[1]
2