(已解决)请教:如何把下面的代码改为第半小时执行
本帖最后由 zym3138 于 2013-1-24 22:25 编辑Local $Hour = 6
While $Hour <= 23
If@HOUR>=$Hour+1 then
如何把上面代码改为每隔半小时执行一then次后面的代码。 adlibregister('func', 1800000) Dim $n = @MIN
While 1
Switch @MIN
Case $n
test()
Case $n + 30
test()
Case $n - 30
test()
EndSwitch
WEnd
Func test()
Sleep(100)
EndFunc ;==>test 回复 3# haijie1223
这个就不是执行一次了,而是在可以执行的那一分钟,不停地执行,另外,一个Case可以同时有多个匹配值 回复 4# annybaby
确实是~应该在函数里面加上个开关,保证每个case只运行一次。 回复 2# netegg
谢谢, 这种方法很好,可惜我不太会用func,能否请帮写下呢。我是要每隔30分钟启动一次then后面的一个软件。 回复 3# haijie1223
谢谢你的帮忙,我是要每隔30分钟执行一次then后面的代码,不是在符合条件时一直循环执行。 回复 6# zym3138
func是自定义函数的函数名,函数随便你写,看看帮助写的,这个写的还是比较明白的,不太好描述清楚 我在论坛中看了委很久,好像有点明白了,先试下再说吧。 回复 7# zym3138
你就不能查一下adlibregister函数的帮助吗?
adlibregister('func', 1800000)
func func()
... ;就是你then后面的
endfunc 回复 4# annybaby
回复 7# zym3138
回复 10# xms77
窃以为注册函数的间隔时间太长,这样耗资源而且不是很准确。昨晚上的代码没有加开关,确实是有问题,因为忙着别的事情,没来得及修改,补上。欢迎拍砖
Dim $n = @MIN
Dim $kg = 1
While 1
Switch @MIN
Case $n
If $kg =1 Then Check()
Case $n + 30
If $kg = 0 Then Check()
Case $n - 30
If $kg = 0 Then Check()
EndSwitch
WEnd
Func Check()
If $n = @MIN Then $kg = 0
If $n <> @MIN Then $kg = 1
test()
EndFunc ;==>Check
Func test()
ConsoleWrite("=" & @CR)
EndFunc ;==>test 回复 10# xms77
While 1
adlibregister('test', 20000)
WEnd
Func test()
Local $PID = ProcessExists("foobar2000.exe") ;代为sygate
If$PID Then
ProcessClose("foobar2000.exe");代为sygate
EndIf
EndFunc
Exit
这个代码问题出在哪,为何只执行到第3行,并一直循环,而没有执行后面的func下的代码呢 回复 8# netegg
While 1
adlibregister('test', 20000)
WEnd
Func test()
Local $PID = ProcessExists("foobar2000.exe") ;代为sygate
If$PID Then
ProcessClose("foobar2000.exe");代为sygate
EndIf
EndFunc
Exit
这个代码问题出在哪,为何只执行到第3行,并一直循环,而没有执行后面的func下的代码呢,请帮我看看。 回复 12# zym3138
adlibregister放到while前面去 回复 11# haijie1223
最后的func可以合并到上一个func吧,另外
ConsoleWrite("=" & @CR )无法理解这一行代码,能解释一下吗、?
页:
[1]
2