如何让托盘自动间隔一定时间执行一个操作?
例如,我有一个GUIForm上有一个Edit,输入一个数字(比如3),程序运行后,如果让托盘事件自动间隔3分钟整理一下内存?我把我原来的代码贴出来:Func Trayin() ;托盘图标过程
Local $prefsitem,$aboutitem,$exititem,$msg,$openCY,$RamClean,$openExcel
$openCY= TrayCreateItem("自动登录")
$openExcel =TrayCreateItem("打开Microsoft Excel")
TrayCreateItem("")
$RamClean = TrayCreateItem("整理内存")
$prefsitem= TrayCreateItem("参数设置")
TrayCreateItem("")
$aboutitem= TrayCreateItem("关于(&A)")
TrayCreateItem("")
$exititem = TrayCreateItem("退出(&E)辅助工具")
TraySetState()
TraySetToolTip( "辅助工具")
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop//假如我想在这里间隔3分钟执行一个整理内存的操作?如何做?
Case $msg = $openCY
Call("Autologin")
Case $msg= $openExcel
Call("OpenExcel")
Case $msg=$RamClean
Call("Clean")
Case $msg = $prefsitem
Call("config")
Case $msg = $aboutitem
Msgbox(64, "关于:辅助工具", "本工具运行于" & "OS:" & @OSVersion)
Case $msg = $exititem
Exit
EndSelect
WEnd
EndFunc
[ 本帖最后由 gc801 于 2008-11-7 10:33 编辑 ] 请大虾们不吝赐教!谢谢了先。 设定个Case $msg=0的情况下.
进行的操作....? 原帖由 amgloon 于 2008-11-6 14:51 发表 http://www.autoitx.com/images/common/back.gif
设定个Case $msg=0的情况下.
进行的操作....?
嗯嗯,或者你能让它自己间隔一定时间执行就行? 我只会简单的。
Case $msg=0
Sleep(180000)
Call("Clean") 延时不行,我的托盘还在执行其他任务呢。有高手赐教吗? 多线程没办法 Dim $i = 1
$Time = '3'
$Time = $Time * 10000
$TC = $Time / 50
AdlibEnable('_AutoMey','50')
Func _AutoMey()
If $TC = $i Then
;;内存整理
$i = 1
$Time = $Time * 10000
$TC = $Time / 50
EndIf
试试这个。。。 楼上,Time被你乘了两次1万,I恒等于1,那内存整理的过程能运行吗/。
Func Trayin() ;托盘图标过程
Local $prefsitem,$aboutitem,$exititem,$msg,$openCY,$RamClean,$openExcel
$openCY= TrayCreateItem("自动登录")
$openExcel =TrayCreateItem("打开Microsoft Excel")
TrayCreateItem("")
$RamClean = TrayCreateItem("整理内存")
$prefsitem= TrayCreateItem("参数设置")
TrayCreateItem("")
$aboutitem= TrayCreateItem("关于(&A)")
TrayCreateItem("")
$exititem = TrayCreateItem("退出(&E)辅助工具")
TraySetState()
TraySetToolTip( "辅助工具")
$T = TimerInit()
While 1
$msg = TrayGetMsg()
Select
Case $msg = $openCY
Call("Autologin")
Case $msg= $openExcel
Call("OpenExcel")
Case $msg=$RamClean
Call("Clean")
Case $msg = $prefsitem
Call("config")
Case $msg = $aboutitem
Msgbox(64, "关于:辅助工具", "本工具运行于" & "OS:" & @OSVersion)
Case $msg = $exititem
Exit
EndSelect
If TimerDiff($T) >= 180000 Then
Clean()
$T = TimerInit()
EndIf
WEnd
EndFunc
谢谢楼上,问题解决了。原来去掉了Case $msg=0的判断。
[ 本帖最后由 gc801 于 2008-11-7 10:30 编辑 ] 原帖由 gc801 于 2008-11-7 10:20 发表 http://www.autoitx.com/images/common/back.gif
谢谢楼上,问题解决了。原来去掉了Case $msg=0的判断。
:face (13): :face (32): :face (28): :face (18): :face (2): :face (9):
不是去掉了Case $msg=0的判断,而是去掉了那个多余的判断,把时间比较加进去才是你想要的... 原帖由 liongodmien 于 2008-11-7 10:36 发表 http://www.autoitx.com/images/common/back.gif
:face (13): :face (32): :face (28): :face (18): :face (2): :face (9):
不是去掉了Case $msg=0的判断,而是去掉了那个多余的判断,把时间比较加进去才是你想要的...
新手,不好意思,我以为如果没有loop的话Case不会循环。 学习了,好东西
页:
[1]