可以使用END来结束程序,但是经常会出现程序非法退出、 也可以用 For i = Forms.Count - 1 To 0 Step -1 Unload Forms(i) Next
'返回鼠标键盘的空闲时间就行.Private Declare Function GetForegroundWindow Lib "user32" () As Long Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean Private Declare Function GetTickCount Lib "kernel32" () As Long Private Type LASTINPUTINFO cbSize As Long dwTime As Long End Type Dim lii As LASTINPUTINFODim freecount As Long Private Sub Form_Load() Timer1.Interval = 1000 Timer1.Enabled = True freecount = 0 End SubPrivate Sub Timer1_Timer() Dim Myform As Form Dim fHwnd As LongfHwnd = GetForegroundWindow For Each Myform In Forms If fHwnd = Myform.hWnd Then lii.cbSize = Len(lii) GetLastInputInfo lii freecount = (GetTickCount - lii.dwTime) / 1000 If freecount < 3600 Then Exit Sub End If Nextfreecount = freecount + 1If freecount > 3600 Then For Each Myform In Forms Unload Myform Next End If End Sub
也可以用
For i = Forms.Count - 1 To 0 Step -1
Unload Forms(i)
Next
Private Declare Function GetLastInputInfo Lib "user32" (plii As LASTINPUTINFO) As Boolean
Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Type LASTINPUTINFO
cbSize As Long
dwTime As Long
End Type
Dim lii As LASTINPUTINFODim freecount As Long
Private Sub Form_Load()
Timer1.Interval = 1000
Timer1.Enabled = True
freecount = 0
End SubPrivate Sub Timer1_Timer()
Dim Myform As Form
Dim fHwnd As LongfHwnd = GetForegroundWindow
For Each Myform In Forms
If fHwnd = Myform.hWnd Then
lii.cbSize = Len(lii)
GetLastInputInfo lii
freecount = (GetTickCount - lii.dwTime) / 1000
If freecount < 3600 Then Exit Sub
End If
Nextfreecount = freecount + 1If freecount > 3600 Then
For Each Myform In Forms
Unload Myform
Next
End If
End Sub