Hack Forums
[.NET] Basic timed computer shutdown - Printable Version

+- Hack Forums (https://hackforums.net)
+-- Forum: Tech (https://hackforums.net/forumdisplay.php?fid=444)
+--- Forum: Coding (https://hackforums.net/forumdisplay.php?fid=151)
+---- Forum: Software Development (https://hackforums.net/forumdisplay.php?fid=118)
+---- Thread: [.NET] Basic timed computer shutdown (/showthread.php?tid=4512103)



Basic timed computer shutdown - ElementalTree - Oct 28, 2014

Hi

I created this to be able to leave the pc downloading some stuff and shutdown itself after some hours. It's really basic but does the job :)
[Image: 0ad7ad3d01b6aaacbcc5945c61a9b9d4.png]

Project files

Or if you just want the minimun lines of code :)
Code
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'Start shutdown event
        If RadioButton1.Checked = True Then
            alarmtime = Date.Now.AddHours(1)
            Timer4.Start()
            Timer1.Interval = 3600000
            Timer1.Start()
        Else
        End If
        If RadioButton2.Checked = True Then
            alarmtime = Date.Now.AddHours(2)
            Timer4.Start()
            Timer1.Interval = 7200000
            Timer1.Start()
        Else
        End If
        If RadioButton3.Checked = True Then
            alarmtime = Date.Now.AddHours(3)
            Timer4.Start()
            Timer1.Interval = 10800000
            Timer1.Start()
        Else
        End If
        If RadioButton4.Checked = True Then
            alarmtime = Date.Now.AddHours(4)
            Timer4.Start()
            Timer1.Interval = 14400000
            Timer1.Start()
        Else
        End If
    End Sub
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        'Start restart event
        If RadioButton1.Checked = True Then
            alarmtime = Date.Now.AddHours(1)
            Timer4.Start()
            Timer2.Interval = 3600000
            Timer2.Start()
        Else
        End If
        If RadioButton2.Checked = True Then
            alarmtime = Date.Now.AddHours(2)
            Timer4.Start()
            Timer2.Interval = 7200000
            Timer2.Start()
        Else
        End If
        If RadioButton3.Checked = True Then
            alarmtime = Date.Now.AddHours(3)
            Timer4.Start()
            Timer2.Interval = 10800000
            Timer2.Start()
        Else
        End If
        If RadioButton4.Checked = True Then
            alarmtime = Date.Now.AddHours(4)
            Timer4.Start()
            Timer2.Interval = 14400000
            Timer2.Start()
        Else
        End If
    End Sub
    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        'Start log-off event
        If RadioButton1.Checked = True Then
            alarmtime = Date.Now.AddHours(1)
            Timer4.Start()
            Timer3.Interval = 3600000
            Timer3.Start()
        Else
        End If
        If RadioButton2.Checked = True Then
            alarmtime = Date.Now.AddHours(2)
            Timer4.Start()
            Timer3.Interval = 7200000
            Timer3.Start()
        Else
        End If
        If RadioButton3.Checked = True Then
            alarmtime = Date.Now.AddHours(3)
            Timer4.Start()
            Timer3.Interval = 10800000
            Timer3.Start()
        Else
        End If
        If RadioButton4.Checked = True Then
            alarmtime = Date.Now.AddHours(4)
            Timer4.Start()
            Timer3.Interval = 14400000
            Timer3.Start()
        Else
        End If
    End Sub
    Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
        'Abort
        Process.Start("shutdown", "-a")
        Timer4.Stop()
        Label1.Text = ""
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        'Shutdown
        Process.Start("shutdown", "-s")
        Timer1.Stop()
    End Sub

    Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
        'Restart
        Process.Start("shutdown", "-r")
        Timer2.Stop()
    End Sub

    Private Sub Timer3_Tick(sender As Object, e As EventArgs) Handles Timer3.Tick
        'Logout
        Process.Start("shutdown", "-l")
        Timer3.Stop()
    End Sub

    'Timer countdown
    Private alarmtime As Date
    Private Sub Timer4_Tick(sender As Object, e As EventArgs) Handles Timer4.Tick
        If alarmtime < Date.Now Then
            Timer4.Stop()
        Else
            Dim remainingTime As TimeSpan = alarmtime.Subtract(Date.Now)
            Label1.Text = String.Format("{0}:{1:d2}:{2:d2}", remainingTime.Hours, remainingTime.Minutes, remainingTime.Seconds)
        End If
    End Sub

Really simple code, but it does what it's supposed to do :)


* - Malware - Oct 28, 2014

Thread.sleep(time);
Shell("shutdown -s");

/Thread

I just remembered you can tell shutdown.exe arguments when to shutdown or how long to wait also...


* - Hiiro - Oct 28, 2014

A really cool thing would be if you had it execute a bunch of different things and shut down after they were finished, just a suggestion :P

Example: Download a file and place it in a directory and shut down 30 seconds after that.