shell语句没错啊。 你的Command1_Click过程里面,根本没有触发Timer1的语句,Timer1_Timer相当于废掉了。另外,abcd这样来定义变量,真的没有让人想看的欲望。 Private m_lngMinuteCount As Long Private m_lngMinuteSum As Long Private Sub Command1_Click() Dim lngHourClose As Long Dim lngMinuteClose As Long lngHourClose = Val(Text1.Text) lngMinuteClose = Val(Text2.Text) m_lngMinuteSum = (lngHourClose - Hour(Now)) * 60 + (lngMinuteClose - Minute(Now)) If m_lngMinuteSum > 0 Then Me.Caption = m_lngMinuteSum m_lngMinuteCount = 0 Timer1.Interval = 60000 Timer1.Enabled = True Else MsgBox "关机时间错误" End If End Sub Private Sub Timer1_Timer() m_lngMinuteCount = m_lngMinuteCount + 1 If m_lngMinuteCount = m_lngMinuteSum Then Timer1.Enabled = False Shut End If End Sub Private Sub Shut() 'Shell "shutdown -s -t 1000" Shell "shutdown -s -t 0" End Sub
Option Explicit Private a%, b%, c%, d%, h%, m% Function fun_gj() If d - h = a And c - m = b Then Timer1.Enabled = False Shell "shutdown -s -t 999" Debug.Print Time End If End Function Private Sub Command1_Click() a = Val(Text1.Text) b = Val(Text2.Text) h = Hour(Now) m = Minute(Now) c = m d = h Timer1.Interval = 60000 Timer1.Enabled = True Debug.Print Time End Sub Private Sub timer1_timer() c = c + 1 If c = 60 Then d = d + 1 c = 0 End If fun_gj End Sub