在不同的模式下实现定时关闭计算机

Option Explicit
Const SM_CLEANBOOT = 67
Const EWX_LOGOFF = 0
Const EWX_SHUTDOWN = 1
Const EWX_REBOOT = 2
Const EWX_FORCE = 4
Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _
ByVal dwReserved As Long) As Long

Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim mytime As Date
Dim RUNTIME As Long
Private Sub Timer1_Timer()
Dim HOUR As Integer
Dim MIN As Integer
Dim SEC As Integer
Dim RUN As String
Dim delay As Integer
RUNTIME = GetTickCount() \ 1000
HOUR = Int(RUNTIME \ 3600)
MIN = (RUNTIME - 3600 * HOUR) \ 60
SEC = RUNTIME - 3600 * HOUR - 60 * MIN
RUN = HOUR & ":" & MIN & ":" & SEC

Select Case GetSystemMetrics(SM_CLEANBOOT)
Case 1: Label1.Caption = "安全模式已运行" & Format(RUN, "hH:Mm:Ss")
Case 2: Label1.Caption = "网络安全模式已运行" & Format(RUN, "hH:Mm:Ss")
Case Else: Label1.Caption = "正常模式已运行" & Format(RUN, "hH:Mm:Ss")
End Select
delay = (Val(Text1.Text) - RUNTIME \ 60 + mytime \ 60)
If Text1.Enabled = False Then
Label3.Caption = "距离关闭计算机还有 " & delay & " 分钟"
If delay = 0 Then Call ExitWindowsEx(EWX_SHUTDOWN, 0)
End If
End Sub
Private Sub Command1_Click()
If Val(Text1.Text) * 60 > 60 Then
Text1.Enabled = False
mytime = RUNTIME
Else
MsgBox ("请输入关机时间,时间要大于1分钟!")
End If
End Sub
Private Sub Command2_Click()
Text1.Enabled = True
End Sub
Private Sub Command3_Click()
End
End Sub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值