首先Timer的模块里面应该有Do ... Loop,或者While ... End While,这样Timer就不会自动退出了。
关闭Timer的语句应该在程序退出前即将执行的地方。或者,你可以直接用END来关闭全部。
如果你是做保护程序,那么完全可以不用Timer线程,直接把Timer的东西写到Main最后就可以了。这样程序就不会退出了。你需要在循环内加入一个判断,来确定是不是需要退出程序才可以。这样,我给你一个Sub Main例子。发到另一个留言里了哦~。
消息2:发送时间 2003-11-11 16:03:37
Function PrevInstance() As Boolean
If UBound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
Return True
Else
Return False
End If
End Function
Sub Main()
If PrevInstance Then End
SaveSetting "ProgramName","SectorName","CanQuit","0"
Do
Threading.Thread.Sleep(500)
Shell "YourMainProgram.exe"
If GetSetting("ProgramName","SectorName","CanQuit","0")="1" Then End
Loop
End Sub
在主程序中,退出前请执行:
SaveSetting "ProgramName","SectorName","CanQuit","1" 并等待1秒,来让保护程序先退出。