Shutdown windows after specified time






1.32/5 (10 votes)
Shutdown windows after specified minutes. You can also pause and resume shutdown timer. Implemented as an application, can be converted as windows service.
Introduction
This is a quite simple few minutes build application for shutting down windows after specified minutes with some flare like pausing and resuming shutdown timer.
Imports System.Timers Public Class ShutDownWin Inherits System.Windows.Forms.Form Private WinTimer As New Timer(1000) Private time As Integer Private TotalSec As Integer Private Sub SetClockTimer() //Activate Test Clock AddHandler WinTimer.Elapsed, AddressOf ClockTimerFired TotalSec = time * 60 SetTimeStr() //Start Clock WinTimer.Enabled = True End Sub //For Displaying time Private Sub SetTimeStr() Dim Min As Integer = Math.Ceiling(CDbl(TotalSec) / 60) Dim Sec As Integer = TotalSec Mod 60 If Sec = 0 Then If Min < 10 Then Me.lblTime.Text = ("0" & CStr(Min) & ":0" & CStr(Sec)) Else Me.lblTime.Text = (CStr(Min) & ":0" & CStr(Sec)) End If Else If (Min) < 11 Then If Sec < 10 Then Me.lblTime.Text = ("0" & CStr(Min - 1) & ":0" & CStr(Sec)) Else Me.lblTime.Text = ("0" & CStr(Min - 1) & ":" & CStr(Sec)) End If Else If Sec < 10 Then Me.lblTime.Text = (CStr(Min - 1) & ":0" & CStr(Sec)) Else Me.lblTime.Text = (CStr(Min - 1) & ":" & CStr(Sec)) End If End If End If End Sub Public Sub ClockTimerFired(ByVal sender As Object, ByVal e As ElapsedEventArgs) TotalSec -= 1 Me.SetTimeStr() If TotalSec < 1 Then 'Me.StopTestTimer() WinTimer.Stop() WinTimer.Enabled = False TotalSec = 0 SetTimeStr() //Shutdown windows 'MsgBox("Shutdown commencing") System.Diagnostics.Process.Start("Shutdown", "/s") End If End Sub Private Sub btnActivate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnActivate.Click btnDeactivate.Enabled = True btnPause.Enabled = True lblTLeft.Enabled = True lblTime.Visible = True btnActivate.Enabled = False time = numTime.Value SetClockTimer() End Sub Private Sub btnDeactivate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeactivate.Click btnActivate.Enabled = True btnPause.Enabled = False btnPause.Text = "Pause" lblTLeft.Enabled = False lblTime.Visible = False btnDeactivate.Enabled = False //Stop timer WinTimer.Stop() WinTimer.Enabled = False End Sub Private Sub btnPause_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPause.Click If btnPause.Text = "Pause" Then 'btnActivate.Enabled = False btnPause.Text = "Resume" lblTLeft.Enabled = False lblTime.Enabled = False 'btnDeactivate.Enabled = False WinTimer.Stop() WinTimer.Enabled = False Else 'btnActivate.Enabled = False btnPause.Text = "Pause" lblTLeft.Enabled = True lblTime.Enabled = True 'btnDeactivate.Enabled = False WinTimer.Start() WinTimer.Enabled = True End If End Sub Private Sub numTime_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles numTime.KeyPress e.Handled = True End Sub Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click Me.Close() End Sub End Class