65.9K
CodeProject is changing. Read more.
Home

Shutdown windows after specified time

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.32/5 (10 votes)

Apr 23, 2006

CPOL
viewsIcon

47142

downloadIcon

534

Shutdown windows after specified minutes. You can also pause and resume shutdown timer. Implemented as an application, can be converted as windows service.

Sample Image - shutdownwin.jpg

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