请教各位高手,在xp系统下,开机运行一个程序的问题。谢谢。
已经能实现此功能,但是,此程序(vb6的exe)只运行一次,如何使其在不人工关闭的情况下,一直不停地运行?
用以下代码可以持续一段时间,但不能持续多久:
For i = 0 To 9999999999999999999
原代码
Next
此法也太笨了。
[ 本帖最后由 HVB6 于 2015-7-30 20:13 编辑 ]
Option Explicit Const S1 = "d:\数据文件\" Const S2 = "d:\数据文件备份\" Dim FileJsOld As Long Private Sub Form_Load() FileJsOld = ReadFileCount(S2) '备份目录里文件个数 Timer1.Interval = 10000 '10秒 Timer1.Enabled = True '开定时器 End Sub Private Sub Timer1_Timer() Dim FileJs As Long Dim i As Long FileJs = ReadFileCount(S1) '新目录里文件个数,同时这样读取后,file 控件中是数据文件的路径 If FileJs - FileJsOld >= 12 Then '大于或等于12个 For i = 0 To FileJs - 1 Call Filebak(File1.List(i)) Next i FileJsOld = ReadFileCount(S2) '如果进行了备份,那么需要重新读备份目录里的文件个数 '如果还要继续监视,那就代码到此为止。 '如果你要结束程序,就再这里再写 end 命令或 unload me 命令 End If End Sub Public Sub Filebak(s As String) If Dir(S1 & s) <> "" Then '源文件存在 If Dir(S2 & s) = "" Then '文件不存在 FileCopy S1 & s, S2 & s '复制文件 Else '备份文件存在 If FileLen(S1 & s) <> FileLen(S2 & s) Then '仅简单比较文件长度 Kill S2 & s '不相同则删备份文件 FileCopy S1 & s, S2 & s '复制文件 End If End If End If DoEvents '前一个是慢速操作 End Sub Public Function ReadFileCount(s As String) As Long If Dir(s) = "" Then Exit Function '目录不存在,直接退出 File1.Path = s '文件目录 File1.Refresh '刷新一下 DoEvents '磁盘操作是慢速操作 ReadFileCount = File1.ListCount '记录备份文件个数 DoEvents End Function